【问题标题】:How to use OpenStreetMap to get distance between two points如何使用 OpenStreetMap 获取两点之间的距离
【发布时间】:2011-05-28 02:41:24
【问题描述】:

我正在开发一个车辆路线规划程序,该程序需要使用 .NET 准确获取车辆不同位置之间的行驶距离。我本可以使用 Google API 来获取距离,但该公司不愿意根据使用量每年支付至少 11,000 美元的订阅费。

我尝试使用Haversine formula 来获取距离,但路线的修正系数非常高,甚至无法正确计算总行程时间。我花了相当长的时间研究 OpenStreetMap,但文档中没有任何具体示例可以满足我的要求。我不需要实际的“图块”来显示地图,只有距离的文本响应就足够了。

我希望在 OpenStreetMap 或其他类似服务中可以调用一些免费使用的服务,或者也许有人可以为我指明正确的开始方向。

【问题讨论】:

标签: c# routing openstreetmap


【解决方案1】:

OpenStreetMap 没有自己的路由算法。

OpenStreetMap wiki 上,有一个执行路由的软件库列表。 Intermodal Transport Routing Information System 是用 C# 编写的。

【讨论】:

    【解决方案2】:

    您可以查找 CloudMade 获取 API 以获取 OpenStreetMap 的行驶距离。

    【讨论】:

    • 我认为您的意思是 CloudMade 而不是 Cloudmate。
    【解决方案3】:

    OpenStreetMap.org 网站还不能测量点之间的距离。但是你仍然可以得到距离。为此,有许多网站和软件可让您在基于 OpenStreetMap 的地图上绘制轨迹,然后获取距离:

    【讨论】:

      【解决方案4】:

      CloudMade API 应该适用于在线工作。

      对于离线路由,您可以使用 PGRouting。这是 PostgreSQL/PostGIS 的扩展,但它可以加载一个 OSM 文件 - 甚至是一个完整的 planet.osm 文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-17
        • 1970-01-01
        • 2014-01-21
        • 2011-02-14
        • 2020-12-22
        • 2017-07-10
        • 2021-11-03
        • 2020-01-12
        相关资源
        最近更新 更多