经纬度/公里距离的简单计算?
是否有一个简单的计算,我可以做到这一点,将公里转换为一个值,我可以添加到经纬度或长度的浮点数来计算搜索的边界框? 它不需要是完全准确的。
例如:如果我得到伦敦,英格兰(51.5001524,-0.1262362)的经纬度,并且我想计算从该点起经纬度东西方向25km的纬度,以及该纬度南北25km处的距离点,我需要做什么来将25公里转换成小数点以增加上述值?
我正在寻找一个通用的经验法则,即:1km == +/- 0.XXX
编辑:
我原来对“lat lon”的搜索没有返回这个结果:
如何计算给定纬度/经度位置的边界框?
接受的答案似乎足以满足我的要求。
大致的转换是:
这并不能完全纠正地球的极地扁平化 - 因为您可能需要使用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?