一,地理坐标系
1.经纬度坐标系
对象:没有实际的对象
说明:cesium默认使用WGS84坐标系作为空间参考,坐标原点在椭球的质心。
2.弧度坐标系(Cartographic)
对象:new Cesium.Cartographic(longitude, latitude, height)
说明:以弧度表示在球体中的坐标点位
二,笛卡尔空间坐标系
1.屏幕坐标系(Cartesian2)
对象:new Cesium.Cartesian2(x, y)
说明:又被称为二维笛卡尔平面坐标,屏幕左上角为原点(0,0),单位为像素值。
2. 世界坐标(Cartesian3)
对象:new Cesium.Cartesian3(x, y, z)
说明:又被称为笛卡尔空间直角坐标,坐标的原点就是椭球的中心,在cesium中变换空间位置时使用。
三,坐标转换
1.经纬度坐标系转弧度坐标系(degrees -> radians)
// 方法一
let long_radians = Cesium.Math.toRadians(long_degrees); // 角度转弧度
let lat_radians= Cesium.Math.toRadians(lat_degrees); // 角度转弧度
let cartographic = new Cesium.Cartographic(long_radians, lat_radians, height);//方法二
let cartographic= Cesium.Cartographic.fromDegrees(long_degrees, lat_degrees, height);
2.弧度坐标系转经纬度坐标系(radians -> degrees)
//方法一:
let long_degrees=Cesium.Math.toDegrees(long_radians);// 弧度转角度
let lat_degrees=Cesium.Math.toDegrees(lat_radians);// 弧度转角度//方法二
let cartographic= Cesium.Cartographic.fromRadians(long_radians, lat_radians, height);
3.经纬度坐标系转世界坐标(degrees -> Cartesian3)
// 方法一
let position = Cesium.Cartesian3.fromDegrees(long_degrees, lat_degrees, height);// 方法二
let position_radians = Cesium.Cartographic.fromDegrees(longitude, latitude, height);
let position = Cesium.Cartesian3.fromRadians(position_radians.longitude, position_radians.latitude, position_radians.height)// 方法三
let position_radians = Cesium.Cartographic.fromDegrees(longitude, latitude, height);
let position = Cesium.Ellipsoid.WGS84.cartographicToCartesian(position_radians);
4.世界坐标转经纬度坐标系(Cartesian3 -> degrees)
// 方法一
let cartographic= Cesium.Cartographic.fromCartesian(cartesian3);
接下来使用弧度坐标系转经纬度坐标系(radians -> degrees)// 方法二
let cartographic = Cesium.Ellipsoid.WGS84.cartesianToCartographic(cartesian3);
接下来使用弧度坐标系转经纬度坐标系(radians -> degrees)