java latlng_java – 在Android中偏移LatLng一定量的米

我有一个LatLng对象,我想把它的坐标移到东边500米处.我找不到内置的方法.我见过

https://gis.stackexchange.com/a/2964,但实际上我的结果太不准确(约15%).如何精确换米?

注意:我不是在寻找移动谷歌地图相机,我知道如何做到这一点.

我试过了:

static final double KILOMETERS_PER_DEGREE = 111.111;

static LatLng offsetLongitude(LatLng initialCoords, float horizontalOffsetInMeters){

double degreeOffset = 1.0 / KILOMETERS_PER_DEGREE * horizontalOffsetInMeters / 1000.0;

double longitudeOffset = Math.cos(initialCoords.latitude * Math.PI / 180.0) * degreeOffset;

return new LatLng(initialCoords.latitude, initialCoords.longitude + longitudeOffset);

}

public static LatLngBounds boundsForSpanWidth(LatLng midpoint, float targetSpanWidth){

LatLng east = offsetLongitude(midpoint, -targetSpanWidth);

LatLng west = offsetLongitude(midpoint, targetSpanWidth);

LatLngBounds newBounds = new LatLngBounds(west, east);

return newBounds;

}

然而,当我用一个目标跨度为5000米的点(不靠近杆或任何东西)称它时,我得到两个相距约6170米的点.为什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值