Simple calculations for working with lat/lon + km distance?
Is there a simple calculation I can do which will convert km into a value which I can add to a lat or lon float to calculate a bounding box for searches? It doesn't need to be completely accurate.
For instance: if I were given a lat/lon for London, England (51.5001524, -0.1262362) and I wanted calculate what the lat would be 25km east/west from that point, and what the lon would be 25km north/south of that point, what would I need to do to convert the 25km into a decimal to add to the values above?
I'm looking for a general rule-of-thumb, ie: 1km == +/- 0.XXX
Edit:
My original search for "lat lon" didn't return this result:
How to calculate the bounding box for a given lat/lng location?
The accepted answer seems adequate for my requirements.
The approximate conversions are:
This doesn't fully correct for the Earth's polar flattening - for that you'd probably want a more complicated formula using the WGS84 reference ellipsoid (the model used for GPS). But the error is probably negligible for your purposes.
Source: http://en.wikipedia.org/wiki/Latitude
Caution : Be aware that latlong coordinates are expressed in degrees, while the cos
function in most (all?) languages typically accepts radians, therefore a degree to radians conversion is needed.
If you're using Java, Javascript or PHP, then there's a library that will do these calculations exactly, using some amusingly complicated (but still fast) trigonometry:
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/70964.html
上一篇: 计算2个GPS坐标之间的距离
下一篇: 经纬度/公里距离的简单计算?