diff --git a/src/Global/FlyRoam/index.js b/src/Global/FlyRoam/index.js index aea3f00..576c3e8 100644 --- a/src/Global/FlyRoam/index.js +++ b/src/Global/FlyRoam/index.js @@ -12,8 +12,8 @@ let repeat = 0 let currentRepeat = 0 -const open = async (sdk, options = {}, _Dialog = {}) => { - let name = options.name || '飞线漫游' +const open = async (sdk, options = {}, _Dialog = {}, func) => { + let name = options.name || '漫游路径' options.points || (options.points = []) if (options.repeat) { repeat = Number(options.repeat) @@ -74,8 +74,9 @@ const open = async (sdk, options = {}, _Dialog = {}) => { name = nameElm.value }) - let addListBtn = document.createElement('button'); - addListBtn.innerHTML = '保存' + // let addListBtn = document.createElement('button'); + let addListBtn = document.getElementsByClassName('saveRoam')[0]; + // addListBtn.innerHTML = '保存' addListBtn.addEventListener('click', () => { if (!name) { name = '漫游路径' @@ -85,6 +86,12 @@ const open = async (sdk, options = {}, _Dialog = {}) => { points.map((item) => { newPoints.push(item) }) + + func({ + name: name, + points: newPoints, + repeat: repeat + '' + }) // _Dialog.clickSavePath && _Dialog.clickSavePath( // { // name: name, @@ -124,20 +131,20 @@ const open = async (sdk, options = {}, _Dialog = {}) => { addTrElm(data) i++ }) - let modifyBtn = contentElm.getElementsByClassName('modify-point')[0] - modifyBtn.addEventListener('click', () => { - if (!active) { - return - } - let position = tools.cartesian3Towgs84(viewer.camera.position, viewer) - points[active - 1].position = position - points[active - 1].orientation = { - heading: viewer.camera.heading, - pitch: viewer.camera.pitch, - roll: viewer.camera.roll - } - tools.message({ text: '操作成功' }) - }) + // let modifyBtn = contentElm.getElementsByClassName('modify-point')[0] + // modifyBtn.addEventListener('click', () => { + // if (!active) { + // return + // } + // let position = tools.cartesian3Towgs84(viewer.camera.position, viewer) + // points[active - 1].position = position + // points[active - 1].orientation = { + // heading: viewer.camera.heading, + // pitch: viewer.camera.pitch, + // roll: viewer.camera.roll + // } + // tools.message({ text: '操作成功' }) + // }) let totalTimeElm = contentElm.querySelector("input[name='totalTime']") let isTotalTimeElm = contentElm.querySelector("input[name='isTotalTime']") @@ -287,11 +294,13 @@ const open = async (sdk, options = {}, _Dialog = {}) => { // } }) e_time.addEventListener('input', (v) => { + console.log(isTotalTimeElm, 'isTotalTimeElm') isTotalTimeElm.checked = false data.duration = Number(e_time.value) if (data.duration < 0) { data.duration = 0 } + console.log(data.duration, 'duration') }) e_time.addEventListener('blur', () => { e_time.value = Number(Number(e_time.value).toFixed(2)) @@ -325,6 +334,7 @@ const close = () => { } const executeFlyTo = (sdk, points = [], index = 0, noStart) => { + console.log(noStart, points, 'noStart') if (clickHandler) { clickHandler.destroy() } diff --git a/src/Global/ScreenShot/index.js b/src/Global/ScreenShot/index.js index 7898bf4..0b1a5c1 100644 --- a/src/Global/ScreenShot/index.js +++ b/src/Global/ScreenShot/index.js @@ -27,7 +27,7 @@ const convertToImage = (container, options = {}) => { useCORS: true,//允许跨域 allowTaint: false, //允许跨域数据污染'被污染'的canvas tainttest: true, - foreignObjectRendering: true, //在浏览器支持的情况下使用ForeignObject模式渲染图片 + foreignObjectRendering: true, //在浏览器支持的情况下使用ForeignObject模式渲染图片 ...options }; @@ -241,11 +241,12 @@ async function ScreenShotHD(sdk, options = {}, cd = () => { }) { start() { if (sdk.viewer.scene.imageryLayers._layers.length <= 1) { this.error = '未加载底图!' - window.ELEMENT && window.ELEMENT.Message({ - message: this.error, - type: 'warning', - duration: 1500 - }); + // window.ELEMENT && window.ELEMENT.Message({ + // message: this.error, + // type: 'warning', + // duration: 1500 + // }); + tools.message({ type: 'warning', text: this.error }) console.warn(this.error) return } @@ -258,11 +259,12 @@ async function ScreenShotHD(sdk, options = {}, cd = () => { }) { } if (!haveBaseMap) { this.error = '未加载底图!' - window.ELEMENT && window.ELEMENT.Message({ - message: this.error, - type: 'warning', - duration: 1500 - }); + // window.ELEMENT && window.ELEMENT.Message({ + // message: this.error, + // type: 'warning', + // duration: 1500 + // }); + tools.message({ type: 'warning', text: this.error }) console.warn(this.error) return } @@ -327,11 +329,12 @@ async function ScreenShotHD(sdk, options = {}, cd = () => { }) { if (!layer) { if (!flag) { _this.error = '当前范围内未找到底图数据!' - window.ELEMENT && window.ELEMENT.Message({ - message: _this.error, - type: 'warning', - duration: 1500 - }); + // window.ELEMENT && window.ELEMENT.Message({ + // message: _this.error, + // type: 'warning', + // duration: 1500 + // }); + tools.message({ type: 'warning', text: _this.error }) console.warn(_this.error) } return @@ -372,11 +375,12 @@ async function ScreenShotHD(sdk, options = {}, cd = () => { }) { ); if (!MinTile || !MaxTile) { let error = '超出地球范围!' - window.ELEMENT && window.ELEMENT.Message({ - message: error, - type: 'warning', - duration: 1500 - }); + // window.ELEMENT && window.ELEMENT.Message({ + // message: error, + // type: 'warning', + // duration: 1500 + // }); + tools.message({ type: 'warning', text: error }) console.warn(error) return } @@ -704,4 +708,4 @@ async function ScreenShotHD(sdk, options = {}, cd = () => { }) { } -export { ScreenShot, ScreenShotHD } \ No newline at end of file +export { ScreenShot, ScreenShotHD } diff --git a/src/Obj/Analysis/Section/index.js b/src/Obj/Analysis/Section/index.js index 2ecf3b6..302d836 100644 --- a/src/Obj/Analysis/Section/index.js +++ b/src/Obj/Analysis/Section/index.js @@ -2,7 +2,7 @@ import Tools from "../../../Tools"; class Section extends Tools { /** * @constructor 剖切 - * @param sdk + * @param sdk * @param tiles3d {object} 3dtiles对象 * @param {Array.} options.positions 经纬度[{lon,lat,alt},...] * @param options.regionsType=false 裁剪类型 false:裁剪内部,true:裁剪外部 @@ -17,6 +17,7 @@ class Section extends Tools { this.options.regionsType = this.options.regionsType || false YJ.Analysis.SectionResults.push(this) this.Planes = [] + this.tools = new Tools(); Section.start(this) } @@ -33,12 +34,13 @@ class Section extends Tools { static start(that) { let positions = that.options.positions || [] - if(!that.isConvex(positions)) { - window.ELEMENT && window.ELEMENT.Message({ - message: '不支持凹多边形', - type: 'warning', - duration: 1500 - }); + if (!that.isConvex(positions)) { + // window.ELEMENT && window.ELEMENT.Message({ + // message: '不支持凹多边形', + // type: 'warning', + // duration: 1500 + // }); + that.tools.message({ type: 'warning', text: '不支持凹多边形' }) console.log('不支持凹多边形') return } @@ -87,13 +89,13 @@ class Section extends Tools { } } - if(that.tiles3d.clippingPlanes) { + if (that.tiles3d.clippingPlanes) { that.tiles3d.clippingPlanes.removeAll() - for(let i=0;i - +
缩放 @@ -177,7 +177,7 @@ function html(that) {
- + @@ -193,4 +193,4 @@ function html(that) { ` } -export { html } \ No newline at end of file +export { html } diff --git a/src/Tools/index.js b/src/Tools/index.js index dc2d659..aada909 100644 --- a/src/Tools/index.js +++ b/src/Tools/index.js @@ -970,12 +970,16 @@ class Tools { return canvas.toDataURL() } - sampleHeightMostDetailed(positions) { + sampleHeightMostDetailed(positions, sdk) { let cartesians = [] positions.forEach((item) => { cartesians.push(new Cesium.Cartographic.fromDegrees(item.lng, item.lat)) }) - return this.sdk.viewer.scene.sampleHeightMostDetailed(cartesians) + if (sdk) { + return sdk.viewer.scene.sampleHeightMostDetailed(cartesians) + } else { + return this.sdk.viewer.scene.sampleHeightMostDetailed(cartesians) + } } flyHome(duration = 3) { diff --git a/src/Tools/projectionConvert.js b/src/Tools/projectionConvert.js index 834b5f1..e04a3b3 100644 --- a/src/Tools/projectionConvert.js +++ b/src/Tools/projectionConvert.js @@ -93,21 +93,62 @@ const open = async (sdk, closeCallBack) => { legpObjectLeft.legp_search(tagData, true) let legpObjectRight = legp(contentElm.getElementsByClassName('right')[0], ".datalist_right") legpObjectRight.legp_search(tagData, true) - let pickElm = contentElm.getElementsByClassName('pick')[0] let copyElm = contentElm.getElementsByClassName('copy')[0] let sourceCopyElm = contentElm.getElementsByClassName('sourceCopy')[0] let datalistLeftInput = contentElm.getElementsByClassName('datalist_left')[0].getElementsByTagName('input')[0] datalistLeftInput.value = tagData[0].value legpObjectLeft.legp_searchActive(tagData[0].value) + + + + let datalistRightInput = contentElm.getElementsByClassName('datalist_right')[0].getElementsByTagName('input')[0] datalistRightInput.value = tagData[0].value legpObjectRight.legp_searchActive(tagData[0].value) + + + + let convertElm = contentElm.getElementsByClassName('convert')[0] let leftXElm = contentElm.getElementsByClassName('left-x')[0] let leftYElm = contentElm.getElementsByClassName('left-y')[0] let rightXElm = contentElm.getElementsByClassName('right-x')[0] let rightYElm = contentElm.getElementsByClassName('right-y')[0] + + let beforeleftVal = 'EPSG:4326' + let beforerightVal = 'EPSG:4326' + // 监听输入事件(实时触发) + datalistLeftInput.addEventListener('input', (e) => { + const newValue = e.target.value; + if (leftXElm.value && leftYElm.value) { + let result = proj.convert([{ x: Number(leftXElm.value), y: Number(leftYElm.value) }], beforeleftVal, newValue) + if (result.code === 0) { + leftXElm.value = result.points[0].x + leftYElm.value = result.points[0].y + } + } + beforeleftVal = newValue + + // 可以在这里调用legp_searchActive方法 + legpObjectLeft.legp_searchActive(newValue); + }); + + datalistRightInput.addEventListener('input', (e) => { + const newValue = e.target.value; + if (rightXElm.value && rightYElm.value) { + let result = proj.convert([{ x: Number(rightXElm.value), y: Number(rightYElm.value) }], beforerightVal, newValue) + if (result.code === 0) { + rightXElm.value = result.points[0].x + rightYElm.value = result.points[0].y + } + } + + beforerightVal = datalistRightInput.value + // 可以在这里调用legp_searchActive方法 + legpObjectRight.legp_searchActive(newValue); + }); + pickElm.addEventListener('click', () => { tip && tip.destroy() event && event.destroy() diff --git a/static/custom/css/index.css b/static/custom/css/index.css index 37d4333..13c193a 100644 --- a/static/custom/css/index.css +++ b/static/custom/css/index.css @@ -899,14 +899,14 @@ .fly-roam>.content .table .tr .th:first-child, .fly-roam>.content .table .tr .td:first-child { - flex: 0 0 95px; - width: 95px; + flex: 0 0 70px; + width: 70px; } .fly-roam>.content .table .tr .th:nth-child(2), .fly-roam>.content .table .tr .td:nth-child(2) { - flex: 0 0 240px; - width: 240px; + flex: 0 0 100px; + width: 100px; } .fly-roam>.content .table .tr .th:last-child,