Skip to content

坐标系

在 cesium 中,一共存在 5 种坐标系,分别为:

  • WGS84 经纬度坐标系
  • WGS84 弧度坐标系(Cartograhic)
  • 笛卡尔空间直角坐标系(Cartesian3)
  • 平面坐标系/屏幕坐标系(Cartesian2)
  • 4D笛卡尔坐标系(Cartesian4)

坐标系的详细介绍以及详细区别,参考文章:cesium 坐标系及转换

总结

  1. cesium中支持WGS84经纬度WGS84弧度两种坐标系,但是WGS84经纬度没有实际的对象来表示,所以通常都是用弧度的方式来运用;
  2. 笛卡尔空间直角坐标系是三维系统的中x,y,z,也就是经度、纬度、高度;
  3. 平面坐标系就相当于一个二维坐标系,少了一个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;

Released under the MIT License.