ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Cesium中各种坐标以及相互转换(七)
[打印本页]
作者:
自由的羽毛
时间:
2023-1-11 19:06
标题:
Cesium中各种坐标以及相互转换(七)
2023-01-11
1.坐标系
Cartesian3
笛卡尔坐标,又叫世界坐标,是一个三维空间中的点 ,具有xyz,类似:(-1314910.6675027965, 5328726.846411945, 3238183.748823095),单位为米
原点在椭球中心
Cartesian2
是二维空间中的点,通常是屏幕坐标
console.log(`鼠标点击位置为:${click.position}`);
复制代码
鼠标点击位置为:(372.79998779296875, 213.7999997138977)屏幕左上角为原点,向右为x正方向,向下为y正方向
cartographic
和Cartesian3一样是三维空间中的点,但是单位是弧度,通常也叫椭球坐标当世界坐标为:(-1315009.0349616667, 5329125.484381694, 3238427.62747913),此时对应的cartographic为:(1.8127222052449903, 0.5359692831389684, 492.5617098962376)第三个参数是海拔,单位为米。
经纬度
Cesuim中没有具体的经纬度对象,要得到经纬度首先需要计算为弧度,再进行转换。
2.坐标转换
2.1 转换为经纬度
其实在实际应用中最常用的就是经纬度,我们先将如何转换为经纬度
2.1.1 cartographic 转经纬度(弧度转经纬度)
这是最简单的,弧度和经纬度是可以直接按照数学公式计算的。
Cesium的Math库也提供了函数进行计算:
// 弧度转换为经纬度
var lon = Cesium.Math.toDegrees(cartographic.longitude); // 经度
var lat = Cesium.Math.toDegrees(cartographic.latitude); // 纬度
console.log(`经度:${lon},纬度:${lat}`);
复制代码
2.1.2 Cartesian3转经纬度(世界坐标/笛卡尔坐标 转经纬度)
由于已经知道如果有弧度的话就可以计算得到经纬度,所以问题转换为如何将世界坐标转换为椭球坐标。
找到了如下方法
可以直接用Cartesian3创建一个弧度坐标。
var x = Cesium.Cartographic.fromCartesian(new Cesium.Cartesian3.fromDegrees(100,30,500))
console.log(`100,30,500对应的弧度:${x}`);
复制代码
2023-01-11 没更完,后面接着来
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4