我正在开发一种车辆路线选择程序,需要使用.Net准确地获取车辆不同位置之间的行驶距离。我本来可以使用谷歌API来获取距离,但公司不愿意每年承诺至少11000美元的订阅费用(视使用量而定)。
我尝试使用Haversine公式来获取距离,但是路线的修正系数非常高,甚至无法正确计算总行程时间。我花了很多时间研究OpenStreetMaps,但文档没有任何具体的例子来满足我的要求。我不需要实际的“瓷砖”来显示地图,只有文字响应与距离就足够了。
我希望有一些可以免费使用的服务,我可以在OpenStreetMap或类似的其他地方调用,或者也许有人可以指出我正确的方向开始。
非常感谢任何帮助。
答案 0 :(得分:2)
OpenStreetMap没有自己的路由算法。
在OpenStreetMap wiki上,有一个执行路由的软件库列表。 Intermodal Transport Routing Information System是用C#编写的。
答案 1 :(得分:2)
如果有人仍然感兴趣,您可以查找cloudmade for API以获取OpenStreetMap的行程距离。
答案 2 :(得分:1)
OpenStreetMap.org网站尚无法测量各点之间的距离。但你仍然可以获得距离。为此,有许多网站和软件可以让您在基于OpenStreetMap的地图上绘制轨迹,然后获取距离:
网站列表 https://wiki.openstreetmap.org/wiki/Track_drawing_websites
注意:其中一些网站包含API。如“Umap”,“bikehike”,“Strava”。
维京软件 https://sourceforge.net/projects/viking/ 强>
注意:此软件是由友好社区免费,拥有和支持的。它适用于高级用户。很多功能。包括API-Key。
答案 3 :(得分:0)
CloudMade API适用于在线工作。对于离线路由,您可以使用PGRouting。这是PostGres / PostGIS的扩展,但可以加载OSM文件 - 甚至是一个完整的planet.osm文件。