信息栏样式

This commit is contained in:
zh
2025-11-13 14:59:06 +08:00
parent 26570d888c
commit 29f6f5781b
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:

View File

@ -591,7 +591,12 @@ class BillboardObject extends Base {
return this.options.position.lng
}
set lng(v) {
this.options.position.lng = Number(Number(v).toFixed(8))
if(v===null || v===undefined || v==='') {
this.options.position.lng = v
}
else {
this.options.position.lng = Number(Number(v).toFixed(8))
}
// this.scan && (this.scan.lng = v)
// this.diffuse && (this.diffuse.lng = v)
this.renewPoint()
@ -607,7 +612,12 @@ class BillboardObject extends Base {
return this.options.position.lat
}
set lat(v) {
this.options.position.lat = Number(Number(v).toFixed(8))
if(v===null || v===undefined || v==='') {
this.options.position.lat = v
}
else {
this.options.position.lat = Number(Number(v).toFixed(8))
}
// this.scan && (this.scan.lat = v)
// this.diffuse && (this.diffuse.lat = v)
this.renewPoint()
@ -623,7 +633,12 @@ class BillboardObject extends Base {
return this.options.position.alt
}
set alt(v) {
this.options.position.alt = Number(Number(v).toFixed(2))
if(v===null || v===undefined || v==='') {
this.options.position.alt = v
}
else {
this.options.position.alt = Number(Number(v).toFixed(2))
}
// this.scan && (this.scan.alt = v)
// this.diffuse && (this.diffuse.alt = v)
this.renewPoint()
@ -2135,9 +2150,9 @@ class BillboardObject extends Base {
this.labelShow = this.originalOptions.label.show
this.labelFontSize = this.originalOptions.label.fontSize
this.labelColor = this.originalOptions.label.color
this.lng = this.originalOptions.position.lng
this.lat = this.originalOptions.position.lat
this.alt = this.originalOptions.position.alt
this.lng = this.originalOptions.position.lng || 0
this.lat = this.originalOptions.position.lat || 0
this.alt = this.originalOptions.position.alt || 0
this.attributeLink = this.options.attribute.link.content
this.attributeVr = this.options.attribute.vr.content
this.attributeCamera = this.options.attribute.camera.content