Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

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

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

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

Can it be modified so I get better results? Thank you

share|improve this question
    
Your link brings up a giant page full of links, not a specific proc, so it is hard to be helpful. –  bmargulies Jul 31 '10 at 16:17
    
Which version of MySQL, and have you tried using double precision? –  Rowland Shaw Jul 31 '10 at 16:43
    
See also: gis.stackexchange.com/questions/2/… –  Rowland Shaw Jul 31 '10 at 16:45
    
I'm using MySQL 5.0.67. –  Mishal Aug 2 '10 at 8:49
add comment

1 Answer

up vote 2 down vote accepted

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.

share|improve this answer
    
OK, I will try it and post my findings here. –  Mishal Aug 2 '10 at 8:50
1  
Cool, Vincenty's formula works good. Prepared procedure for MySQL can be found here: forge.mysql.com/tools/tool.php?id=222 –  Mishal Aug 2 '10 at 10:05
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.