Cesium坐标转换
屏幕坐标、三维空间坐标、投影坐标
1.坐标系:
var pt1 = new Cesium.Cartesian2(1,1) //表示一个二维笛卡尔坐标系,也就是直角坐标系(屏幕坐标系)
new Cesium.Cartesian3(1,1,1) //表示一个三维笛卡尔坐标系,也是直角坐标系(就是真实世界的坐标系)
2.二维屏幕坐标系到三维坐标系的转换:
var pick= scene.globe.pick(viewer.camera.getPickRay(pt1), scene) //其中pt1为一个二维屏幕坐标。
3.三维坐标到地里坐标的转换:
var geoPt= scene.globe.ellipsoid.cartesianToCartographic(pick1) //其中pick1是一个Cesium.Cartesian3对象。
4.地里坐标到经纬度坐标的转换:
var point1=[geoPt.longitude / Math.PI * 180,geoPt.latitude / Math.PI * 180]; //其中geoPt1是一个地理坐标。
5.经纬度坐标转地里坐标(弧度):
var cartographic = Cesium.Cartographic.fromDegree(point) //point是经纬度值
var coord_wgs84 = Cesium.Cartographic.fromDegrees(lng, lat, alt);//单位:度,度,米
6.经纬度坐标到世界坐标:
var cartesian = Cesium.Cartesian3.fromDegree(point)
7.弧度角度转换:
Cesium.Math.toDegrees(radians);//将弧度转换为角度
Cesium.Math.toRadians(degrees);//将角度转换为弧度
/
var toRadians = Math.PI / 180.0;//角度转化为弧度(rad)
var toDegrees = 180.0 / Math.PI;//弧度转化为角度
8.计算两个三维坐标之间的距离:
var d = Cesium.Cartesian3.distance(
new Cesium.Cartesian3(pick1.x, pick1.y, pick1.z),
new Cesium.Cartesian3(pick3.x, pick3.y, pick3.z)
); //pick1、pick3都是三维坐标系