/*
* @Description: 坐标转换工具,下面的坐标转换默认都是基于WGS84 椭球体
*/
class Degrees {
constructor(longitude, latitude, height = 0) {
this.longitude = longitude;
this.latitude = latitude;
this.height = height;
}
}
Cesium.Degrees = Degrees;//不建议这样直接修改Cesium原始对象
class Tramsform {
/**
* @description: 弧度转度
* @param {Number} value
* @return {Number}
*/
toDegrees(value) {
return Cesium.Math.toDegrees(value)
}
/**
* @description: 度转弧度
*/
toRadians(value) {
return Cesium.Math.toRadians(value)
}
/**
* @description: 经纬度(度)转世界坐标
* @param {Degrees} degrees.longitude 经度 degrees.latitude 纬度 degrees.height高度
* @return {Cartesian3} 世界坐标
*/
degreesToCartesian(degrees) {
return Cesium.Cartesian3.fromDegrees(degrees.longitude, degrees.latitude, degrees.height)
}
/*
* @description: 世界坐标转 经纬度(度)
* @param {Cartesian3} cartesian 世界坐标
* @return {Cartographic} 返回转换之后的经纬度
*/
degreesFromCartesian(cartesian) {
let cartographic = this.cartographicFromCartesian(cartesian);
return this.degreesFromCartographic(cartographic);
}
/*
* @description: 经纬度(度)转经纬度(弧度)
* @param {*} degrees
* @return {*}
*/
degreesToCartographic(degrees) {
degrees.longitude = this.toRadians(degrees.longitude);
degrees.latitude = this.toRadians(degrees.latitude);
return degrees;
}
/**
* @description: 经纬度(弧度)转经纬度(度)
* @param {Cartographic} cartographic
* @return {*} 返回经纬度(度)
*/
degreesFromCartographic(cartographic) {
cartographic.longitude = this.toDegrees(cartographic.longitude);
cartographic.latitude = this.toDegrees(cartographic.latitude);
return cartographic;
}
/**<