修改投影坐标转换

This commit is contained in:
2025-12-08 14:45:24 +08:00
parent 601642d6ee
commit 063e22fb6a
3 changed files with 50 additions and 42 deletions

View File

@ -652,7 +652,6 @@ function splitScreen2(sdk, status) {
item.entity && (item.entity.splitDirection = value) item.entity && (item.entity.splitDirection = value)
} }
} }
console.log()
}) })
} }
} }

View File

@ -8,7 +8,7 @@
import md5 from 'js-md5' import md5 from 'js-md5'
import { Proj } from './proj' import { Proj } from './proj'
import { open as projConvertOpen, close as projConvertClose } from './projConvert' import { open as projConvertOpen, close as projConvertClose } from './projConvert'
import { open as projectionConvertOpen, close as projectionConvertClose } from './projectionConvert' import { open as projectionConvertOpen, close as projectionConvertClose, updateCoordinates } from './projectionConvert'
import { setActiveViewer, closeRotateAround, closeViewFollow } from '../Global/global' import { setActiveViewer, closeRotateAround, closeViewFollow } from '../Global/global'
import FlowPictureMaterialProperty from '../Obj/Materail/FlowPictureMaterialProperty' import FlowPictureMaterialProperty from '../Obj/Materail/FlowPictureMaterialProperty'
import { syncData, get3DView } from '../Global/MultiViewportMode' import { syncData, get3DView } from '../Global/MultiViewportMode'
@ -1221,7 +1221,7 @@ class Tools {
let pos3 = new Cesium.Cartesian3.fromDegrees(position.lng, position.lat); let pos3 = new Cesium.Cartesian3.fromDegrees(position.lng, position.lat);
let position1 let position1
try { try {
position1 = await this.sdk.viewer.scene.clampToHeight({x:pos3.x, y: pos3.y, z: pos3.z}, objectsToExclude) || pos3 position1 = await this.sdk.viewer.scene.clampToHeight({ x: pos3.x, y: pos3.y, z: pos3.z }, objectsToExclude) || pos3
} catch (error) { } catch (error) {
position1 = pos3 position1 = pos3
} }
@ -1298,6 +1298,9 @@ class Tools {
projectionConvertClose() projectionConvertClose()
} }
} }
updateCoordinates(date1, date2) {
updateCoordinates(date1, date2)
}
/** /**
* @desc 导出excel * @desc 导出excel

View File

@ -7,6 +7,7 @@ import Tools from '../Tools'
let _DialogObject let _DialogObject
let tip let tip
let event let event
let datalistLeftInput, datalistRightInput
const open = async (sdk, closeCallBack) => { const open = async (sdk, closeCallBack) => {
let topls = new Tools() let topls = new Tools()
let proj = new Proj() let proj = new Proj()
@ -89,23 +90,23 @@ const open = async (sdk, closeCallBack) => {
} }
) )
}) })
let legpObjectLeft = legp(contentElm.getElementsByClassName('left')[0], ".datalist_left") // let legpObjectLeft = legp(contentElm.getElementsByClassName('left')[0], ".datalist_left")
legpObjectLeft.legp_search(tagData, true) // legpObjectLeft.legp_search(tagData, true)
let legpObjectRight = legp(contentElm.getElementsByClassName('right')[0], ".datalist_right") // let legpObjectRight = legp(contentElm.getElementsByClassName('right')[0], ".datalist_right")
legpObjectRight.legp_search(tagData, true) // legpObjectRight.legp_search(tagData, true)
let pickElm = contentElm.getElementsByClassName('pick')[0] let pickElm = contentElm.getElementsByClassName('pick')[0]
let copyElm = contentElm.getElementsByClassName('copy')[0] let copyElm = contentElm.getElementsByClassName('copy')[0]
let sourceCopyElm = contentElm.getElementsByClassName('sourceCopy')[0] let sourceCopyElm = contentElm.getElementsByClassName('sourceCopy')[0]
let datalistLeftInput = contentElm.getElementsByClassName('datalist_left')[0].getElementsByTagName('input')[0] // let datalistLeftInput = contentElm.getElementsByClassName('datalist_left')[0].getElementsByTagName('input')[0]
datalistLeftInput.value = tagData[0].value // datalistLeftInput.value = tagData[0].value
legpObjectLeft.legp_searchActive(tagData[0].value) // legpObjectLeft.legp_searchActive(tagData[0].value)
let datalistRightInput = contentElm.getElementsByClassName('datalist_right')[0].getElementsByTagName('input')[0] // let datalistRightInput = contentElm.getElementsByClassName('datalist_right')[0].getElementsByTagName('input')[0]
datalistRightInput.value = tagData[0].value // datalistRightInput.value = tagData[0].value
legpObjectRight.legp_searchActive(tagData[0].value) // legpObjectRight.legp_searchActive(tagData[0].value)
@ -119,35 +120,35 @@ const open = async (sdk, closeCallBack) => {
let beforeleftVal = 'EPSG:4326' let beforeleftVal = 'EPSG:4326'
let beforerightVal = 'EPSG:4326' let beforerightVal = 'EPSG:4326'
// 监听输入事件(实时触发) // 监听输入事件(实时触发)
datalistLeftInput.addEventListener('input', (e) => { // datalistLeftInput.addEventListener('input', (e) => {
const newValue = e.target.value; // const newValue = e.target.value;
if (leftXElm.value && leftYElm.value) { // if (leftXElm.value && leftYElm.value) {
let result = proj.convert([{ x: Number(leftXElm.value), y: Number(leftYElm.value) }], beforeleftVal, newValue) // let result = proj.convert([{ x: Number(leftXElm.value), y: Number(leftYElm.value) }], beforeleftVal, newValue)
if (result.code === 0) { // if (result.code === 0) {
leftXElm.value = result.points[0].x // leftXElm.value = result.points[0].x
leftYElm.value = result.points[0].y // leftYElm.value = result.points[0].y
} // }
} // }
beforeleftVal = newValue // beforeleftVal = newValue
// 可以在这里调用legp_searchActive方法 // // 可以在这里调用legp_searchActive方法
legpObjectLeft.legp_searchActive(newValue); // // legpObjectLeft.legp_searchActive(newValue);
}); // });
datalistRightInput.addEventListener('input', (e) => { // datalistRightInput.addEventListener('input', (e) => {
const newValue = e.target.value; // const newValue = e.target.value;
if (rightXElm.value && rightYElm.value) { // if (rightXElm.value && rightYElm.value) {
let result = proj.convert([{ x: Number(rightXElm.value), y: Number(rightYElm.value) }], beforerightVal, newValue) // let result = proj.convert([{ x: Number(rightXElm.value), y: Number(rightYElm.value) }], beforerightVal, newValue)
if (result.code === 0) { // if (result.code === 0) {
rightXElm.value = result.points[0].x // rightXElm.value = result.points[0].x
rightYElm.value = result.points[0].y // rightYElm.value = result.points[0].y
} // }
} // }
beforerightVal = datalistRightInput.value // beforerightVal = datalistRightInput.value
// 可以在这里调用legp_searchActive方法 // // 可以在这里调用legp_searchActive方法
legpObjectRight.legp_searchActive(newValue); // // legpObjectRight.legp_searchActive(newValue);
}); // });
pickElm.addEventListener('click', () => { pickElm.addEventListener('click', () => {
tip && tip.destroy() tip && tip.destroy()
@ -165,7 +166,7 @@ const open = async (sdk, closeCallBack) => {
let pos84 = topls.cartesian3Towgs84(cartesian, sdk.viewer) let pos84 = topls.cartesian3Towgs84(cartesian, sdk.viewer)
tip && tip.destroy() tip && tip.destroy()
event && event.destroy() event && event.destroy()
let result = proj.convert([{ x: Number(pos84.lng), y: Number(pos84.lat) }], 'EPSG:4326', datalistLeftInput.value) let result = proj.convert([{ x: Number(pos84.lng), y: Number(pos84.lat) }], 'EPSG:4326', datalistLeftInput)
if (result.code === 0) { if (result.code === 0) {
leftXElm.value = result.points[0].x leftXElm.value = result.points[0].x
leftYElm.value = result.points[0].y leftYElm.value = result.points[0].y
@ -183,7 +184,7 @@ const open = async (sdk, closeCallBack) => {
topls.message({ type: 'warning', text: '请输入源坐标' }) topls.message({ type: 'warning', text: '请输入源坐标' })
return return
} }
let result = proj.convert([{ x: Number(leftXElm.value), y: Number(leftYElm.value) }], datalistLeftInput.value, datalistRightInput.value) let result = proj.convert([{ x: Number(leftXElm.value), y: Number(leftYElm.value) }], datalistLeftInput, datalistRightInput)
if (result.code === 0) { if (result.code === 0) {
rightXElm.value = result.points[0].x rightXElm.value = result.points[0].x
rightYElm.value = result.points[0].y rightYElm.value = result.points[0].y
@ -240,4 +241,9 @@ const close = () => {
event && event.destroy() event && event.destroy()
} }
export { open, close } const updateCoordinates = (select1, select2) => {
datalistLeftInput = select1
datalistRightInput = select2
}
export { open, close, updateCoordinates }