1.屏幕坐标(像素)
二维笛卡尔平面坐标,可通过new Cesium.Cartesian2(x,y)创建
2.笛卡尔空间直角坐标
又称世界坐标,可通过new Cesium.Cartesian3(x,y,z)创建,它的坐标原点在椭球的中心
3.地理坐标(弧度)
new Cesium.Cartographic(longitude,latitude,height)
4.经纬度坐标
测绘中的地理经纬度坐标,默认是WGS84坐标系,坐标原点在球的质心。
经度:参考球面上某点的大地子午面与本初子午面间的两面角,东正西负。
纬度:参考球面上某点的法线与赤道平面的夹角,北正南负。
Cesuim中没有具体的经纬度对象,要得到经纬度首先需要计算为弧度,再进行转换.
// 经纬度转弧度
Cesium.Math.toRadians(degrees)
// 度转经纬度
Cesium.Math.toDegrees(radians)
Cesium中常用的坐标变换
1.经纬度坐标转世界坐标
Cesium提供了两种方式将经纬度坐标转成世界坐标
方法1:直接转换
var cartesian3 = Cesium.Cartesian3.fromDegrees(lng,lat, height);
方法2: 借助ellipsoid对象,先转换成弧度再转换
var cartographic = Cesium,Cartographic.fromDegrees(Ing,lat, height); //单位:度,度,米
var cartesian3 = ellipsoid,cartographicToCartesian(cartographic);
2.世界坐标转经纬度
第一步:笛卡尔空间直角坐标系转为地理坐标(弧度制)
// 方法1
var cartographic = Cesium.Cartographic.fromCartesian(cartesian3);
// 方法2
var cartographic = ellipsoid.cartesianToCartographic(cartesian3);
第二步: 地理坐标(弧度制) 转为经纬度坐标
var lat = Cesium.Math.toDegrees(cartographic.latitude);
var Ing = Cesium.Math.toDegrees(cartographic.longitude);
var height = cartographic.height;
3.弧度和经纬度互转
经纬度转弧度: Cesium.Math.toRadians(degrees)
弧度转经纬度:Cesium.Math.toDegrees(radians)
4.屏幕坐标和世界坐标互转
// 二维屏幕坐标转为三维笛卡尔空间直角坐标(世界坐标)
var cartesian3 = scene.globe.pick(viewer.camera.getPickRay(windowPostion).scene
//三维卡尔空间直角坐标转为二维屏幕坐标,结果是Cartesian2对象,取出X,Y即为屏幕坐标
windowPostion = Cesium.SceneTransforms.wgs84ToWindowCoordinates(scene,cartesian3);