How to Calculate Distance Between Two Locations in MySQL

distanceMySQL

I have a database with locations with their lat and long coordinates. The area of locations is quite small with lots of them quite near each other.

I'm using this stored procedure in my project. http://www.artfulsoftware.com/infotree/queries.php?&bw=1680#109

I'm having troubles with accuracy. I need it to return more accurate results (in metres) instead of just 0 distance.

Can it be modified so I get better results?

Best Answer

If the distances are so close together that single precision floats can't capture the distance, you probably don't need to account for the curvature of the earth at all — you must be dealing with phenomena only a few meters apart. The simplest solution is to then use double precision, as Rowland mentioned, or easier yet, just compute a linear distance between the two points, ignoring earth curvature.

In the highly unlikely event that you do in fact have high-precision, high-accuracy data, you can use the Vincenty's formula, which can give accurate results down to millimeters.

Related Question