Cesium中的几种坐标和相互转换

几个重要的坐标对象:

1.世界坐标

Cartesian3:笛卡尔空间直角坐标系
new Cesium.Cartesian3(x, y, z)


这里写图片描述

可以看作,以椭球中心为原点的空间直角坐标系中的一个点的坐标。

2.经纬度

地理坐标系,坐标原点在椭球的质心。

经度:参考椭球面上某点的大地子午面与本初子午面间的两面角。东正西负。

纬度 :参考椭球面上某点的法线与赤道平面的夹角。北正南负。

Cesuim中没有具体的经纬度对象,要得到经纬度首先需要计算为弧度,再进行转换。


这里写图片描述

3.弧度

Cartographic
new Cesium.Cartographic(longitude, latitude, height)

这里的参数也叫做,longitude,latitude,即经度和纬度。

但是是用弧度表示的经纬度,经纬度其实就是角度,可以看上面的解释。弧度即角度对应弧长是半径的倍数。

角度转弧度 π/180×角度
弧度变角度 180/π×弧度


这里写图片描述

几种转换

1. 经纬度转换为世界坐标

第一种方式:直接转换:

Cesium.Cartesian3.fromDegrees(longitude, latitude, height, ellipsoid, result) 

longitude:经度

latitude:纬度

height:高度

ellipsoid:椭球体:

第二种方式:先转换成弧度再转换

var ellipsoid=viewer.scene.globe.ellipsoid;
var cartographic=Cesium.Cartographic.fromDegrees(lng,lat,alt);
var cartesian3=ellipsoid.cartographicToCartesian(cartographic);

以上方式是借助了ellipsoid对象的方法。

2. 世界坐标转换为经纬度

var ellipsoid&#
Cesium坐标转换可以使用Cesium坐标转换功能来实现。Cesium提供了几种常用的坐标转换方法,包括经纬度(地理坐标)和笛卡尔坐标之间的转换。 要将经纬度转换为笛卡尔坐标,你可以使用Cesium.Cartesian3.fromDegrees()方法。该方法接受经度、纬度和可选的高度参数,并返回对应的笛卡尔坐标。 例如,要将经度为lon、纬度为lat、高度为height的位置转换为笛卡尔坐标,可以使用以下代码: ```javascript var cartesian = Cesium.Cartesian3.fromDegrees(lon, lat, height); ``` 同样地,如果你有一个笛卡尔坐标(x、y、z),想要将其转换为经纬度,可以使用Cesium.Cartographic.fromCartesian()方法。该方法接受一个笛卡尔坐标作为参数,并返回对应的经纬度坐标。 以下是一个将笛卡尔坐标转换为经纬度的示例: ```javascript var cartographic = Cesium.Cartographic.fromCartesian(cartesian); var longitude = Cesium.Math.toDegrees(cartographic.longitude); var latitude = Cesium.Math.toDegrees(cartographic.latitude); var height = cartographic.height; ``` 在上面的代码,首先使用Cesium.Cartographic.fromCartesian()方法将笛卡尔坐标转换为地理坐标对象,然后使用Cesium.Math.toDegrees()方法将弧度转换为度数。最后,可以通过访问地理坐标对象的longitude、latitude和height属性来获取转换后的经纬度和高度值。 需要注意的是,Cesium还提供了其他坐标系之间的转换方法,如笛卡尔坐标和屏幕坐标之间的转换。你可以根据具体的需求选择合适的方法进行坐标转换
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值