坐标类型
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