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

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

例如:如果我得到伦敦,英格兰(51.5001524,-0.1262362)的经纬度,并且我想计算从该点起经纬度东西方向25km的纬度,以及该纬度南北25km处的距离点,我需要做什么来将25公里转换成小数点以增加上述值?

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

编辑:

我原来对“lat lon”的搜索没有返回这个结果:

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

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


大致的转换是:

  • 纬度:1度= 110.574公里
  • 经度:1度= 111.320 * cos(纬度)公里
  • 这并不能完全纠正地球的极地扁平化 - 因为您可能需要使用WGS84参考椭球体(用于GPS的模型)的更复杂的公式。 但是这个错误对于你的目的可能是微不足道的。

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

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


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

    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);
    
    链接地址: http://www.djcxy.com/p/70963.html

    上一篇: Simple calculations for working with lat/lon + km distance?

    下一篇: How to find distance from the latitude and longitude of two locations?