cesium中的坐标系
Cesium中常用的坐标:有两种WGS84地理坐标系和笛卡尔空间坐标系
1.WGS84地理坐标系:分WGS84经纬度坐标系(没有实际的对象)、 WGS84弧度坐标系(Cartographic)
2.笛卡尔空间坐标系:分平面坐标系(Cartesian2),笛卡尔空间直角坐标系(Cartesian3)、4D笛卡尔坐标系(Cartesian4)
WGS84地理坐标系
- Cartographic类:new Cesium.Cartographic(longitude, latitude, height),在Cesium中没有实际的对象来描述WGS84坐标,都是以弧度的方式来进行运用的也就是,这里的参数也叫longitude、latitude,就是经度和纬度,计算方法:弧度= π/180×经纬度角度。
笛卡尔空间坐标系
- Cartesian2类new Cesium.Cartesian2(x, y),平面直角坐标系,经常用来描述屏幕坐标系,比如鼠标在电脑屏幕上的点击位置。
坐标系转换
经纬度和弧度的转换(toRadians转为弧度,toDegrees转为经纬度)
var radians=Cesium.Math.toRadians(degrees);//经纬度转弧度
var degrees=Cesium.Math.toDegrees(radians);//弧度转经纬度
WGS84经纬度坐标和WGS84弧度坐标系(Cartographic)的转换
//方法一:经纬度转弧度
var longitude = Cesium.Math.toRadians(longitude1); //其中 longitude1为角度
var latitude= Cesium.Math.toRadians(latitude1); //其中 latitude1为角度
var cartographic = new Cesium.Cartographic(longitude, latitude, height);
//方法二:经纬度转弧度
var cartographic= Cesium.Cartographic.fromDegrees(longitude, latitude, height);//其中,longitude和latitude为角度
//方法三:弧度转经纬度
var cartographic= Cesium.Cartographic.fromRadians(longitude, latitude, height);//其中,longitude和latitude为弧度
WGS84坐标系和笛卡尔空间直角坐标系(Cartesian3)的转换
以下三种方法均使用角度,从WGS84坐标系转换为笛卡尔空间直角坐标系(由经纬度转变为x,y,z)
var position = Cesium.Cartesian3.fromDegrees(longitude, latitude, height);//其中,高度默认值为0,可以不用填写;longitude和latitude为角度
var positions = Cesium.Cartesian3.fromDegreesArray(coordinates);//其中,coordinates格式为不带高度的数组。例如:[-115.0, 37.0, -107.0, 33.0]
var positions = Cesium.Cartesian3.fromDegreesArrayHeights(coordinates);//coordinates格式为带有高度的数组。例如:[-115.0, 37.0, 100000.0, -107.0, 33.0, 150000.0]
//同理,通过弧度转换,用法相同,具体有Cesium.Cartesian3.fromRadians,Cesium.Cartesian3.fromRadiansArray,Cesium.Cartesian3.fromRadiansArrayHeights等方法