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:

  • Latitude: 1 deg = 110.574 km
  • Longitude: 1 deg = 111.320*cos(latitude) km
  • 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坐标之间的距离

    下一篇: 经纬度/公里距离的简单计算?