Cesium常用坐标转换(Cartesian3世界坐标、Cartesian2屏幕坐标、Cartographic(WGS84)弧度、经纬度)
const handler = new Cesium.ScreenSpaceEventHandler(scene.canvas); handler.setInputAction((movement) => { // 从Cartesain2屏幕坐标获取Cartesain3世界坐标 // 根据单击的位置所拾取的要素类型不同 // 单击的位置要在球体否则转换为undefined // 第一种方式: 获取场景坐标 let cartesian3Position01 = scene.pickPosition(movement.position) console.log('cartesian3Position01::: ', cartesian3Position01) // 第二种方式: 获取地表坐标 let ray = viewer.camera.getPickRay(movement.position); // ray: 测试相交的射线,scene:当前场景 let cartesian3Position02 = viewer.scene.globe.pick(ray, viewer.scene); console.log('cartesian3Position02::: ', cartesian3Position02) // 第三种方式: 获取椭球面坐标 // 椭球面坐标参考椭球体的WGS-84体系,不包含地形、模型、倾斜摄影模型表面 let cartesian3Position03 = viewer.scene.camera.pickEllipsoid(movement.position); console.log('cartesian3Position03::: ', cartesian3Position03) // 从Cartesian3世界坐标获取WGS-84坐标(弧度表示) let cartographic = Cesium.Cartographic.fromCartesian(cartesian3Position01); console.log('WGS-84 position: ', cartographic); // { // "longitude": -1.9644396422943724, // "latitude": 0.7562774920515126, // "height": -265.2578173681123 // } // 从WGS-84坐标获取经纬度坐标(弧度 转为 经纬度 let lat = Cesium.Math.toDegrees(cartographic.latitude); let lng = Cesium.Math.toDegrees(cartographic.longitude); let height = Cesium.Math.toDegrees(cartographic.height); console.log('{lat, lng, height}::: ', {lat, lng, height}) // 经纬度坐标转为WGS-84弧度坐标 let cartographicPosition = Cesium.Cartographic.fromDegrees(lng, lat, height) console.log('cartographicPosition:: ', cartographicPosition) // =========== 经纬度坐标转为世界坐标Cartesian3 let cartesian3PositionFromDegrees = Cesium.Cartesian3.fromDegrees(lng, lat, height); // =========== WGS84弧度坐标转为世界坐标Cartesian3 let cartesian3PositionFromWGS84 = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, cartographic.height); console.log('cartesian3PositionFromDegrees::: ', cartesian3PositionFromDegrees) console.log('cartesian3PositionFromWGS84::: ', cartesian3PositionFromWGS84) }, Cesium.ScreenSpaceEventType.LEFT_CLICK)
学而不思则罔,思而不学则殆!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!