经纬度+公里距离的简单计算?

是否有一个简单的计算,我可以做到这一点将公里转换为一个值,我可以添加到经纬度或长度的浮点数来计算search的边界框? 它不需要是完全准确的。

例如:如果我给伦敦,英格兰(51.5001524,-0.1262362)一个纬度/经度,我想要计算从这一点到东西方向25公里的拉特将是什么样的东西,以及南北方向是25公里点,我需要做什么来将25公里转换成小数点以上的值?

我正在寻找一个一般的经验法则,即:1km == +/- 0.XXX

编辑:

我原来的search“经纬度”没有返回这个结果:

如何计算给定纬度/经度位置的边界框?

接受的答案似乎足以满足我的要求。

大致的转换是:

  • 纬度:1度= 110.574公里
  • 经度:1度= 111.320 * cos(纬度)km

这并不能完全矫正地球的极坐标,因为你可能需要使用WGS84参考椭球(用于GPS的模型)的更复杂的公式。 但是这个错误对你来说可能是微不足道的。

资料来源: http : //en.wikipedia.org/wiki/Latitude

警告 :请注意,latlong坐标以度表示,而大多数(所有?)语言的cos函数通常接受弧度,因此需要一定程度的弧度转换 。

在那个页面中有一些有用的计算

http://www.movable-type.co.uk/scripts/latlong.html

如果您使用的是Java,Javascript或PHP,那么有一个库会精确地完成这些计算,使用一些有趣的复杂(但仍然很快)的三angular函数:

http://www.jstott.me.uk/jcoord/

http://www.jstott.me.uk/jcoord/ – 使用这个库

  LatLng lld1 = new LatLng(40.718119, -73.995667); LatLng lld2 = new LatLng(51.499981, -0.125313); Double distance = lld1.distance(lld2); Log.d(TAG, "Distance in kilometers " + distance);