This commit is contained in:
2025-11-13 17:13:32 +08:00
3 changed files with 195 additions and 315 deletions

View File

@ -156,19 +156,20 @@ function CesiumContainer(sdk, options) {
infoElm.style.color = '#fff';
infoElm.style.padding = '4px 10px';
infoElm.style['border-radius'] = '18px';
infoElm.style.display = 'flex';
if (coordinateSystem === 'EPSG:4326') {
infoElm.innerHTML = `
<span>经度:</span><span>-</span>
<span>纬度:</span><span>-</span>
<span>海拔高度</span><span>-</span>
<div><span>经度:</span><span>-</span></div>
<div><span>纬度:</span><span>-</span></div>
<div><span>高程</span><span>-</span></div>
`
}
else {
infoElm.innerHTML = `
<span>x</span><span>-</span>
<span>y</span><span>-</span>
<span>z</span><span>-</span>
<div><span>x</span><span>-</span></div>
<div><span>y</span><span>-</span></div>
<div><span>z</span><span>-</span></div>
`
}
sdk.viewer._element.appendChild(infoElm)
@ -206,23 +207,23 @@ function CesiumContainer(sdk, options) {
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>
<div><span>经度:</span><span>${Number(position.lng.toFixed(6))}° </span></div>
<div><span>纬度:</span><span>${Number(position.lat.toFixed(6))}° </span></div>
<div><span>高程</span><span>${Number(position.alt.toFixed(2))}米</span></div>
`
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>
<div><span>经度:</span><span>${proj.degreesToDMS(position.lng, true)}</span></div>
<div><span>纬度:</span><span>${proj.degreesToDMS(position.lat, true)}</span></div>
<div><span>高程</span><span>${Number(position.alt.toFixed(2))}米</span></div>
`
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>
<div><span>经度:</span><span>${proj.degreesToDMS(position.lng, false)}</span></div>
<div><span>纬度:</span><span>${proj.degreesToDMS(position.lat, false)}</span></div>
<div><span>高程</span><span>${Number(position.alt.toFixed(2))}米</span></div>
`
break;
default:
@ -234,9 +235,9 @@ function CesiumContainer(sdk, options) {
let result = proj.convert([{ x: position.lng, y: position.lat, z: position.alt }], 'EPSG:4326', posiToCoordinate(coordinateSystem, position))
if (result.points.length) {
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>
<span style="margin-left: 5px;">z</span><span>${Number(result.points[0].z.toFixed(6))}</span>
<div><span>x</span><span>${Number(result.points[0].x.toFixed(6))}</span></div>
<div><span style="margin-left: 5px;">y</span><span>${Number(result.points[0].y.toFixed(6))}</span></div>
<div><span style="margin-left: 5px;">z</span><span>${Number(result.points[0].z.toFixed(6))}</span></div>
`
}
@ -782,23 +783,23 @@ function setCoordinateSystem(sdk, epsg) {
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>
<div><span>经度:</span><span>${Number(position.lng.toFixed(6))}° </span></div>
<div><span>纬度:</span><span>${Number(position.lat.toFixed(6))}° </span></div>
<div><span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span></div>
`
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>
<div><span>经度:</span><span>${proj.degreesToDMS(position.lng, true)}</span></div>
<div><span>纬度:</span><span>${proj.degreesToDMS(position.lat, true)}</span></div>
<div><span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span></div>
`
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>
<div><span>经度:</span><span>${proj.degreesToDMS(position.lng, false)}</span></div>
<div><span>纬度:</span><span>${proj.degreesToDMS(position.lat, false)}</span></div>
<div><span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span></div>
`
break;
default:
@ -809,9 +810,9 @@ function setCoordinateSystem(sdk, epsg) {
// let result = proj.convert([{ x: position.lng, y: position.lat, z: position.alt }], 'EPSG:4326', coordinateSystem)
let result = proj.convert([{ x: position.lng, y: position.lat, z: position.alt }], 'EPSG:4326', posiToCoordinate(coordinateSystem, position))
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>
<span style="margin-left: 5px;">z</span><span>${Number(result.points[0].z.toFixed(6))}</span>
<div><span>x</span><span>${Number(result.points[0].x.toFixed(6))}</span></div>
<div><span style="margin-left: 5px;">y</span><span>${Number(result.points[0].y.toFixed(6))}</span></div>
<div><span style="margin-left: 5px;">z</span><span>${Number(result.points[0].z.toFixed(6))}</span></div>
`
}
}
@ -888,23 +889,23 @@ function setDMS(sdk, type) {
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>
<div><span>经度:</span><span>${Number(position.lng.toFixed(6))}° </span></div>
<div><span>纬度:</span><span>${Number(position.lat.toFixed(6))}° </span></div>
<div><span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span></div>
`
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>
<div><span>经度:</span><span>${proj.degreesToDMS(position.lng, true)}</span></div>
<div><span>纬度:</span><span>${proj.degreesToDMS(position.lat, true)}</span></div>
<div><span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span></div>
`
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>
<div><span>经度:</span><span>${proj.degreesToDMS(position.lng, false)}</span></div>
<div><span>纬度:</span><span>${proj.degreesToDMS(position.lat, false)}</span></div>
<div><span>海拔高度:</span><span>${Number(position.alt.toFixed(2))}米</span></div>
`
break;
default: