坐标类型
This commit is contained in:
@ -17,6 +17,7 @@ import { updateCluster } from './cluster/cluster'
|
||||
import { getHost } from "../on";
|
||||
|
||||
let coordinateSystem = 'EPSG:4326'
|
||||
let positionType = '度'
|
||||
let _cartesian
|
||||
let GroundCover = true
|
||||
let bimPickObject = {}
|
||||
@ -197,14 +198,40 @@ function CesiumContainer(sdk, options) {
|
||||
let position = tools.cartesian3Towgs84(_cartesian, sdk.viewer)
|
||||
// position.alt = height
|
||||
if (coordinateSystem === 'EPSG:4326') {
|
||||
infoElm.innerHTML = `
|
||||
// infoElm.innerHTML = `
|
||||
// <span>经度:</span><span>${Number(position.lng.toFixed(6))}° </span>
|
||||
// <span>纬度:</span><span>${Number(position.lat.toFixed(6))}° </span>
|
||||
// <span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span>
|
||||
// `
|
||||
switch (positionType || '度') {
|
||||
case '度':
|
||||
infoElm.innerHTML = `
|
||||
<span>经度:</span><span>${Number(position.lng.toFixed(6))}° </span>
|
||||
<span>纬度:</span><span>${Number(position.lat.toFixed(6))}° </span>
|
||||
<span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span>
|
||||
`
|
||||
break;
|
||||
case '度分':
|
||||
infoElm.innerHTML = `
|
||||
<span>经度:</span><span>${proj.degreesToDMS(position.lng, true)}</span>
|
||||
<span>纬度:</span><span>${proj.degreesToDMS(position.lat, true)}</span>
|
||||
<span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span>
|
||||
`
|
||||
break;
|
||||
case '度分秒':
|
||||
infoElm.innerHTML = `
|
||||
<span>经度:</span><span>${proj.degreesToDMS(position.lng, false)}</span>
|
||||
<span>纬度:</span><span>${proj.degreesToDMS(position.lat, false)}</span>
|
||||
<span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span>
|
||||
`
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
let result = proj.convert([{ x: position.lng, y: position.lat, z: position.alt }], 'EPSG:4326', coordinateSystem)
|
||||
console.log(result, 'result12');
|
||||
infoElm.innerHTML = `
|
||||
<span>x:</span><span>${Number(result.points[0].x.toFixed(6))}</span>
|
||||
<span style="margin-left: 5px;">y:</span><span>${Number(result.points[0].y.toFixed(6))}</span>
|
||||
@ -723,7 +750,6 @@ function splitScreen(sdk, status) {
|
||||
item.entity && (item.entity.splitDirection = value)
|
||||
}
|
||||
}
|
||||
console.log()
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -745,14 +771,40 @@ function setCoordinateSystem(sdk, epsg) {
|
||||
let proj = sdk.proj
|
||||
let position = tools.cartesian3Towgs84(_cartesian, sdk.viewer)
|
||||
if (coordinateSystem === 'EPSG:4326') {
|
||||
infoElm.innerHTML = `
|
||||
// infoElm.innerHTML = `
|
||||
// <span>经度:</span><span>${Number(position.lng.toFixed(6))}° </span>
|
||||
// <span>纬度:</span><span>${Number(position.lat.toFixed(6))}° </span>
|
||||
// <span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span>
|
||||
// `
|
||||
switch (positionType || '度') {
|
||||
case '度':
|
||||
infoElm.innerHTML = `
|
||||
<span>经度:</span><span>${Number(position.lng.toFixed(6))}° </span>
|
||||
<span>纬度:</span><span>${Number(position.lat.toFixed(6))}° </span>
|
||||
<span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span>
|
||||
`
|
||||
break;
|
||||
case '度分':
|
||||
infoElm.innerHTML = `
|
||||
<span>经度:</span><span>${proj.degreesToDMS(position.lng, true)}</span>
|
||||
<span>纬度:</span><span>${proj.degreesToDMS(position.lat, true)}</span>
|
||||
<span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span>
|
||||
`
|
||||
break;
|
||||
case '度分秒':
|
||||
infoElm.innerHTML = `
|
||||
<span>经度:</span><span>${proj.degreesToDMS(position.lng, false)}</span>
|
||||
<span>纬度:</span><span>${proj.degreesToDMS(position.lat, false)}</span>
|
||||
<span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span>
|
||||
`
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
let result = proj.convert([{ x: position.lng, y: position.lat, z: position.alt }], 'EPSG:4326', coordinateSystem)
|
||||
console.log(result, 'result')
|
||||
infoElm.innerHTML = `
|
||||
<span>x:</span><span>${Number(result.points[0].x.toFixed(6))}</span>
|
||||
<span style="margin-left: 5px;">y:</span><span>${Number(result.points[0].y.toFixed(6))}</span>
|
||||
@ -761,6 +813,52 @@ function setCoordinateSystem(sdk, epsg) {
|
||||
}
|
||||
}
|
||||
|
||||
function getDMS() {
|
||||
return positionType
|
||||
}
|
||||
function setDMS(sdk, type) {
|
||||
if (coordinateSystem !== 'EPSG:4326') {
|
||||
return
|
||||
}
|
||||
positionType = type
|
||||
if (!sdk || !sdk.viewer || !sdk.viewer._element) {
|
||||
return
|
||||
}
|
||||
let infoElm = sdk.viewer._element.getElementsByClassName('cesium-info')[0]
|
||||
if (!_cartesian || !infoElm) {
|
||||
return
|
||||
}
|
||||
let tools = new Tools()
|
||||
let proj = sdk.proj
|
||||
let position = tools.cartesian3Towgs84(_cartesian, sdk.viewer)
|
||||
switch (type) {
|
||||
case '度':
|
||||
infoElm.innerHTML = `
|
||||
<span>经度:</span><span>${Number(position.lng.toFixed(6))}° </span>
|
||||
<span>纬度:</span><span>${Number(position.lat.toFixed(6))}° </span>
|
||||
<span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span>
|
||||
`
|
||||
break;
|
||||
case '度分':
|
||||
infoElm.innerHTML = `
|
||||
<span>经度:</span><span>${proj.degreesToDMS(position.lng, true)}</span>
|
||||
<span>纬度:</span><span>${proj.degreesToDMS(position.lat, true)}</span>
|
||||
<span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span>
|
||||
`
|
||||
break;
|
||||
case '度分秒':
|
||||
infoElm.innerHTML = `
|
||||
<span>经度:</span><span>${proj.degreesToDMS(position.lng, false)}</span>
|
||||
<span>纬度:</span><span>${proj.degreesToDMS(position.lat, false)}</span>
|
||||
<span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span>
|
||||
`
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
proj.degreesToDMS(position.lng, true)
|
||||
}
|
||||
|
||||
function cameraChanged(sdk, cb) {
|
||||
let tools = new Tools()
|
||||
//设置相机变化的监听事件
|
||||
@ -846,4 +944,4 @@ function enablePerspective(sdk, alpha = 1) {
|
||||
sdk.viewer.scene.globe.translucency.frontFaceAlpha = alpha
|
||||
}
|
||||
|
||||
export { getCurrentView, setDefaultView, flyTo, CameraController, CesiumContainer, setBillboardDefaultUrl, getBillboardDefaultUrl, setGroundCover, getGroundCover, getBimPickStatus, setBimPickStatus, rotateAround, closeRotateAround, closeViewFollow, FlwStatusSwitch, JwwStatusSwitch, getFlwStatus, getJwwStatus, getCoordinateSystem, setCoordinateSystem, cameraChanged, setMaximumRequestsPerServer, setKeyboardEventActive, getTheme, setTheme, getCesiumIndexedDBMaxSize, setCesiumIndexedDBMaxSize, getCesiumManageIndexexDBState, setCesiumManageIndexexDBState, getCesiumIndexedDBCurrentSize, setActiveViewer, enablePerspective }
|
||||
export { getCurrentView, setDefaultView, flyTo, CameraController, CesiumContainer, setBillboardDefaultUrl, getBillboardDefaultUrl, setGroundCover, getGroundCover, getBimPickStatus, setBimPickStatus, rotateAround, closeRotateAround, closeViewFollow, FlwStatusSwitch, JwwStatusSwitch, getFlwStatus, getJwwStatus, getCoordinateSystem, setCoordinateSystem, getDMS, setDMS, cameraChanged, setMaximumRequestsPerServer, setKeyboardEventActive, getTheme, setTheme, getCesiumIndexedDBMaxSize, setCesiumIndexedDBMaxSize, getCesiumManageIndexexDBState, setCesiumManageIndexexDBState, getCesiumIndexedDBCurrentSize, setActiveViewer, enablePerspective }
|
||||
|
||||
Reference in New Issue
Block a user