C# – How to use OpenStreetMap to get distance between two points

copenstreetmaprouting

I am working on a vehicle-routing program that needs to accurately get the driving distance between different locations for a vehicle using .NET. I could have used the Google API to get the distances, but the company isn't willing to commit at least USD11,000 per year for subscription fee subject to usage volume.

I tried using the Haversine formula to get the distances, but the correction factor for the route is overwhelmingly high for it to even get close to calculating the total travel time correctly. I have spent quite some time researching OpenStreetMap, but the documentation does not have any specific examples to suit my requirements. I do not need the actual "tiles" to display the maps, only text-response with the distance would suffice.

I was hoping there would be some free to use service I could invoke within OpenStreetMap or others similar, or maybe someone could point me in the right direction to get started.

Best Answer

OpenStreetMap does not have their own routing algorithm.

On the OpenStreetMap wiki, there's a list of software libraries that perform routing. The Intermodal Transport Routing Information System is written in C#.