[GIS] How to make distance calculated using Latitude and Longitude more accurate

geocodinglatitude longitudePHP

I'm coding a Web App whereby users can choose their city (start) and a destination city, and find out the approximate distance between both cities, using Latitude and Longitude of both cities to calcultate. Then i thought that since this will be done using the concept of a Straight Line on a sphere, it means that i'll be getting a result of a straight line which is the shortest, but in reality (driving route especially), will have hills, curves, turns. It might be practically impossible to have an accurate distance, but how can i make the app more accurate that just a straight line distance.

I'll be most delighted by you opinions, suggestions, answers and comments.
Thanks in advance.

Best Answer

If you want to factor-in more accurate driving distances, I recommend pitching-out to a free service already providing these sort of metrics like Google's or MapQuest's.

Google's seems to rightly-check for crazy inputs. I tried getting driving directions from Boston, MA, to Malé, Maldives, and the service replied it could not connect the two; it's possible the API returns some fail codes but I can't say for certain.

So in your map, you could start by first calling the free driving directions service. This might require summing the different segment lengths to get the full distance. But, if the driving directions service returned a fail code, you could do a straight line geodedic measurement and provide the user a clue that the value is approximated. ..Here's a thought, you could wire-up more than one service and either take the average, or the non-failed if that were the case.

You're using Long/Lat (geodetic) coordinates, so I assume you're worldwide and not localized to one or two countries. On the whole, I think you'll find this to be true: As you map a smaller area, your potential to achieve great accuracy increases, but as you map large areas, you gradually trade greater accuracy for the larger area. Of course, this assumes you have access to the same modest data as the rest of us. If you're sitting on the world's best dataset, maybe you can beat the rule.

Related Question