cesium坐标转换偏差问题

  之前做过一个相对于模型左下角坐标为基点的一个项目,后端给的数据是{x:'120',y:'30'}单位为(米)的坐标,
米转换成经纬度之后发现一个正方形的电子围栏,变成了一个斜的不规则正方形,然后又来回的转换之后发现
Cesium的每次转换都是有点偏差的,没办法只能用三角函数转换成坐标来实现了。

PS:三角函数转换后性能上有些卡顿,需要优化,慎重转换(如果大佬有更好的办法,不吝赐教,谢谢)。


Cesium.Cartographic.fromCartesian(item)//弧度转换
Cesium.MathtoDegrees(carto.longitude).toFixed(5) //弧度转换经纬度
Cesium.Cartographic.fromDegrees(lng,lat,0)//经纬度转换世界坐标
经度longtitude 相同纬度之间-经度距离111*cosa km a是纬度对应的弧度纬度
latitude相同经度之间一纬度距离约111km
Math.cos(60*Math.PI/180)
//原点经纬度
var origin = 120,30
//电子围栏平面坐标
var point1 = 0,0
var point2 = 500,0
var point3 = 500,500
var point4 = 0,500
//经纬度
var point1 = 120,30 //120是经度,30是纬度
var point2 = 120 + 0.5/(Math.cos(30*Math.Pl/180)*111),30
var point3 = 120 + 0.5/(Math.cos((30+0.5/111)*Math.Pl/180)*111),30+0.5/111
var point4 = 120,30 + 0.5/111
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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还提供了其他坐标系之间的转换方法,如笛卡尔坐标和屏幕坐标之间的转换。你可以根据具体的需求选择合适的方法进行坐标转换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值