Bootstrap

cesium中的坐标系

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);

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;