From cff089c77766bc34f370a139e3109e2a8d2d36e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=8F=E5=A4=A7=E8=83=86?= <1101282782@qq.com> Date: Tue, 25 Nov 2025 09:52:38 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E9=97=B4=E8=B7=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Obj/Base/BatchModel/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Obj/Base/BatchModel/index.js b/src/Obj/Base/BatchModel/index.js index 5e71777..adc67a1 100644 --- a/src/Obj/Base/BatchModel/index.js +++ b/src/Obj/Base/BatchModel/index.js @@ -50,7 +50,7 @@ class BatchModel extends Base { let tools = new Tools(sdk) // BatchModel.computeDis(this) // if (this.options.positions.length > 0 || this.options.positions.lng) { - if (this.options.spacing < 0 || options.spacing * 1 === 0) { + if (options.type != '点' && (this.options.spacing < 0 || options.spacing * 1 === 0)) { tools.message({ type: 'warning', text: '请输入正确的间距!' }) return; } From 6d5271146747baa165e4322d82bea33fc8aea997 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=8F=E5=A4=A7=E8=83=86?= <1101282782@qq.com> Date: Tue, 25 Nov 2025 14:32:18 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E9=BC=A0=E6=A0=87=E5=AE=9A=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Global/MouseCoordinate/index.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/Global/MouseCoordinate/index.js b/src/Global/MouseCoordinate/index.js index 4cd1d84..eaccee7 100644 --- a/src/Global/MouseCoordinate/index.js +++ b/src/Global/MouseCoordinate/index.js @@ -181,13 +181,13 @@ const MouseCoordinate = (sdk, status) => { // contentElm.innerHTML = `

经度:${degrees.lng.toFixed(6)}°

维度:${degrees.lat.toFixed(6)}°

海拔:${degrees.alt.toFixed(2)} m

` switch (positionType || '度') { case '度': - contentElm.innerHTML = `

经度:${degrees.lng.toFixed(6)}°

维度:${degrees.lat.toFixed(6)}°

海拔:${degrees.alt.toFixed(2)} m

` + contentElm.innerHTML = `

经度:${degrees.lng.toFixed(6)}°

维度:${degrees.lat.toFixed(6)}°

海拔:${degrees.alt.toFixed(2)} m

` break; case '度分': - contentElm.innerHTML = `

经度:${proj.degreesToDMS(degrees.lng, true)}

维度:${proj.degreesToDMS(degrees.lat, true)}

海拔:${degrees.alt.toFixed(2)} m

` + contentElm.innerHTML = `

经度:${proj.degreesToDMS(degrees.lng, true)}

维度:${proj.degreesToDMS(degrees.lat, true)}

海拔:${degrees.alt.toFixed(2)} m

` break; case '度分秒': - contentElm.innerHTML = `

经度:${proj.degreesToDMS(degrees.lng, false)}

维度:${proj.degreesToDMS(degrees.lat, false)}

海拔:${degrees.alt.toFixed(2)} m

` + contentElm.innerHTML = `

经度:${proj.degreesToDMS(degrees.lng, false)}

维度:${proj.degreesToDMS(degrees.lat, false)}

海拔:${degrees.alt.toFixed(2)} m

` break; default: break; @@ -197,19 +197,18 @@ const MouseCoordinate = (sdk, status) => { // let result = tools.convert([{ x: degrees.lng, y: degrees.lat, z: degrees.alt }], 'EPSG:4326', coordinateSystem) let result = tools.convert([{ x: degrees.lng, y: degrees.lat, z: degrees.alt }], 'EPSG:4326', posiToCoordinate(coordinateSystem, degrees)) position = result.points[0] - contentElm.innerHTML = `

x:${position.x.toFixed(6)}

y:${position.y.toFixed(6)}

z:${position.z.toFixed(6)}

` + contentElm.innerHTML = `

x:${position.x.toFixed(6)}

y:${position.y.toFixed(6)}

z:${position.z.toFixed(6)}

` } } else { let coordinateSystem = getCoordinateSystem() if (coordinateSystem === 'EPSG:4326') { - contentElm.innerHTML = `

经度:-

维度:-

海拔:-

` + contentElm.innerHTML = `

经度:-

维度:-

海拔:-

` } else { - contentElm.innerHTML = `

x:-

y:-

z:-

` + contentElm.innerHTML = `

x:-

y:-

z:-

` } } - } animateUpdate() From 1fecb7872f2656fb440263290a745e003639eb02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=8F=E5=A4=A7=E8=83=86?= <1101282782@qq.com> Date: Tue, 25 Nov 2025 17:08:14 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E9=A3=9E=E8=A1=8C=E6=BC=AB=E6=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Global/FlyRoam/index.js | 65 ++++++++++++++++++++++++++++++++++--- 1 file changed, 61 insertions(+), 4 deletions(-) diff --git a/src/Global/FlyRoam/index.js b/src/Global/FlyRoam/index.js index 7dab5fc..a7c4754 100644 --- a/src/Global/FlyRoam/index.js +++ b/src/Global/FlyRoam/index.js @@ -18,6 +18,14 @@ const open = async (sdk, options = {}, _Dialog = {}, func) => { if (options.repeat) { repeat = Number(options.repeat) } + if (options.defaultTime) { + let contentElm = document.getElementsByClassName('fly-roam')[0] + contentElm.querySelector("input[name='defaultTime']").value = options.defaultTime + } + if (options.totalTime) { + let contentElm = document.getElementsByClassName('fly-roam')[0] + contentElm.querySelector("input[name='totalTime']").value = options.totalTime + } let viewer = sdk.viewer let tools = new Tools(sdk) let active = 0 @@ -72,6 +80,23 @@ const open = async (sdk, options = {}, _Dialog = {}, func) => { nameElm.value = name nameElm.addEventListener('input', () => { name = nameElm.value + func({ + name: name, + points: points, + repeat: repeat + '', + defaultTime: defaultTimeDom.value, + totalTime: totalTimeElm.value + }) + }) + let defaultTimeDom = contentElm.querySelector("input[name='defaultTime']") + nameElm.addEventListener('input', () => { + func({ + name: name, + points: points, + repeat: repeat + '', + defaultTime: defaultTimeDom.value, + totalTime: totalTimeElm.value + }) }) // let addListBtn = document.createElement('button'); @@ -90,7 +115,9 @@ const open = async (sdk, options = {}, _Dialog = {}, func) => { func({ name: name, points: newPoints, - repeat: repeat + '' + repeat: repeat + '', + defaultTime: defaultTimeDom.value, + totalTime: totalTimeElm.value }) // _Dialog.clickSavePath && _Dialog.clickSavePath( // { @@ -138,6 +165,14 @@ const open = async (sdk, options = {}, _Dialog = {}, func) => { points.splice(active, 0, data) addTrElm(data) i++ + + func({ + name: name, + points: points, + repeat: repeat + '', + defaultTime: defaultTimeDom.value, + totalTime: totalTimeElm.value + }) }) // let modifyBtn = contentElm.getElementsByClassName('modify-point')[0] // modifyBtn.addEventListener('click', () => { @@ -184,6 +219,13 @@ const open = async (sdk, options = {}, _Dialog = {}, func) => { } trList[trList.length - 1].querySelector("input[name='time']").value = 0 } + func({ + name: name, + points: points, + repeat: repeat + '', + defaultTime: defaultTimeDom.value, + totalTime: totalTimeElm.value + }) }) repeatElm.checked = (repeat === Infinity ? true : false) repeatElm.addEventListener('change', () => { @@ -194,6 +236,13 @@ const open = async (sdk, options = {}, _Dialog = {}, func) => { repeat = 0 } currentRepeat = repeat + func({ + name: name, + points: points, + repeat: repeat + '', + defaultTime: defaultTimeDom.value, + totalTime: totalTimeElm.value + }) _Dialog.changeRepeatStateCallBack && _Dialog.changeRepeatStateCallBack(repeatElm.checked) }) @@ -260,7 +309,7 @@ const open = async (sdk, options = {}, _Dialog = {}, func) => { let modifyBtn = tr.getElementsByClassName('modify-point')[0] modifyBtn.addEventListener('click', () => { for (let m = 0; m < trList.length; m++) { - if (trList[m] === e_delete.parentNode.parentNode) { + if (trList[m] === e_delete.parentNode.parentNode.parentNode) { let position = tools.cartesian3Towgs84(viewer.camera.position, viewer) points[m].position = position points[m].orientation = { @@ -277,14 +326,14 @@ const open = async (sdk, options = {}, _Dialog = {}, func) => { e_play.addEventListener('click', () => { for (let m = 0; m < trList.length; m++) { - if (trList[m] === e_delete.parentNode.parentNode) { + if (trList[m] === e_play.parentNode.parentNode.parentNode) { flyTo(sdk, points, m) } } }) e_delete.addEventListener("click", (v) => { for (let m = 0; m < trList.length; m++) { - if (trList[m] === e_delete.parentNode.parentNode) { + if (trList[m] === e_delete.parentNode.parentNode.parentNode) { points.splice(m, 1) points[points.length - 1] && (points[points.length - 1].duration = 0) tableBody.removeChild(tr) @@ -322,6 +371,14 @@ const open = async (sdk, options = {}, _Dialog = {}, func) => { // if (trList.length > 0) { // trList[trList.length - 1].querySelector("input[name='time']").disabled = 'disabled' // } + + func({ + name: name, + points: points, + repeat: repeat + '', + defaultTime: defaultTimeDom.value, + totalTime: totalTimeElm.value + }) }) e_time.addEventListener('input', (v) => { isTotalTimeElm.checked = false From 669f2bf90855f9f52b96a52546b4d9d7525a9db3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=8F=E5=A4=A7=E8=83=86?= <1101282782@qq.com> Date: Fri, 28 Nov 2025 17:10:11 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BA=BF=E5=BD=93?= =?UTF-8?q?=E9=80=9F=E5=BA=A6=E4=B8=BA0=E6=97=B6=E4=B8=8D=E5=8F=8D?= =?UTF-8?q?=E5=90=91bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Tools/index.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Tools/index.js b/src/Tools/index.js index 3544176..77f2a5a 100644 --- a/src/Tools/index.js +++ b/src/Tools/index.js @@ -709,7 +709,8 @@ class Tools { color: color, image: this.getSourceRootPath() + `/img/arrow/${type - 6}.png`, space: newParam.space, - speed: newParam.speed + speed: newParam.speed, + rotate: newParam.rotate } param.speed = newParam.rotate ? param.speed : 0 - param.speed @@ -733,11 +734,11 @@ class Tools { myImg.src = options.image myImg.onload = function () { options.space = Math.max(0.1, options.space); - if (options.speed > 0 || options.speed == 0) { + if (options.speed > 0 || (options.speed == 0 && options.rotate)) { canvasEle.width = myImg.width * (options.space + 1) canvasEle.height = myImg.height ctx.drawImage(myImg, myImg.width * (options.space / 2), 0) - } else { + } else if (options.speed < 0 || (options.speed == 0 && !options.rotate)) { ctx.clearRect(0, 0, canvasEle.width, canvasEle.height); canvasEle.width = myImg.width * (options.space + 1) canvasEle.height = myImg.height