首页 > 其他 > 详细

Cesium 各种坐标转换

时间:2021-07-18 13:06:46      阅读:15      评论:0      收藏:0      [点我收藏+]

2、打印出当前经度、纬度、高度、摄像头参数

const { longitude, latitude, height } = viewer.camera._positionCartographic
console.log(`${Cesium.Math.toDegrees(longitude)}, ${Cesium.Math.toDegrees(latitude)}, ${Math.ceil(height)}`)
console.log(`{ heading: ${viewer.camera.heading}, pitch: ${viewer.camera.pitch}, roll: ${viewer.camera.roll} }`)

3、弧度经纬度互转

Cesium 中没有具体的经纬度对象,要得到经纬度对象,需要先弧度,再进行转换。

// 经纬度转弧度
Cesium.Math.toRadians(degrees)

// 弧度转经纬度
Cesium.Math.toDegrees(radians)

4、经纬度坐标转世界坐标

var cartesian3 = Cesium.Cartesian3.fromDegrees(lng, lat, height)

5、世界坐标转经纬度坐标

// 第一步: 笛卡尔空间直角坐标系转为地理坐标(弧度制)
var cartographic = Cesium.Cartographic.fromCartesian(cartesian3)

// 第二步
var lat = Cesium.Math.toDegrees(cartographic.latitude)
var lng = Cesium.Math.toDegrees(cartographic.longitude)
var height = cartographic.height

6、屏幕坐标和世界坐标转换

// 二维屏幕坐标转为三维笛卡尔空间直角坐标(世界坐标)
var cartesian3 = scene.globe.pick(
    viewer.camera.getPickRay(windowPosition),
    scene,
)

// 三维笛卡尔空间直角坐标转为二维屏幕坐标,结果是 Cartesian2 对象,取出XY即为屏幕坐标。
windowPosition = Cesium.SceneTransforms.wgs84ToWindowCoordinates(screen, cartesian3)

Cesium 各种坐标转换

原文:https://www.cnblogs.com/CyLee/p/15026002.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!