坐标系
在 cesium 中,一共存在 5 种坐标系,分别为:
- WGS84 经纬度坐标系
- WGS84 弧度坐标系(Cartograhic)
- 笛卡尔空间直角坐标系(Cartesian3)
- 平面坐标系/屏幕坐标系(Cartesian2)
- 4D笛卡尔坐标系(Cartesian4)
坐标系的详细介绍以及详细区别,参考文章:cesium 坐标系及转换。
总结
cesium
中支持WGS84经纬度
和WGS84弧度
两种坐标系,但是WGS84经纬度
没有实际的对象来表示,所以通常都是用弧度的方式来运用;- 笛卡尔空间直角坐标系是三维系统的中x,y,z,也就是经度、纬度、高度;
- 平面坐标系就相当于一个二维坐标系,少了一个z向量 ,比如我们点击电脑屏幕,获取到的就是平面坐标系;
坐标转换
经纬度 转 笛卡尔
使用 fromDegrees 方法:
js
Cesium.Cartesian3.fromDegrees(lng, lat, height);
// 示例
const cartesian3 = Cesium.Cartesian3.fromDegrees(102.7363, 38.0251, 0);
笛卡尔 转 经纬度
方法一(toDegrees):
js
// 创建一个笛卡尔坐标
const cartesian3 = Cesium.Cartesian3.fromDegrees(102.7363, 38.0251, 0);
// 1、笛卡尔 转 弧度
const cartographic = Cesium.Cartographic.fromCartesian(cartesian3);
// 2、使用 cesium Api
const lon = Cesium.Math.toDegrees(cartographic.longitude);
const lat = Cesium.Math.toDegrees(cartographic.latitude);
const height = cartographic.height;
方法二(算数方法):
js
// 创建一个笛卡尔坐标
const cartesian3 = Cesium.Cartesian3.fromDegrees(102.7363, 38.0251, 0);
// 1、笛卡尔 转 弧度
const cartographic = Cesium.Cartographic.fromCartesian(cartesian3);
// 2、使用算数方法
const lon = (180 / Math.PI) * cartographic.longitude;
const lat = (180 / Math.PI) * cartographic.latitude;
const height = cartographic.height;