【问题标题】:How do i work with .osm files in terms of creation of nodes and edges so i can put it on a Djikstra Algorithm?我如何使用 .osm 文件来创建节点和边,以便我可以将它放在 Djikstra 算法上?
【发布时间】:2016-12-04 11:21:03
【问题描述】:

我有一个 MetroManila.osm 文件,我对其进行了解析,因此它只能使用以下命令读取道路:--keep = --keep-nodes=highway --keep-ways=。这是仅过滤道路的正确命令吗?
解析后我想要的是创建一个有交叉点或曲线的节点,或者是否可以仅使用 MetroManila.osm 中的整个节点?我可以使用它创建边缘吗?我该怎么做?目前,我真的不知道该怎么做,因为我在 android studio 和 osmdroid 上还很新。

【问题讨论】:

    标签: android-studio openstreetmap osmdroid


    【解决方案1】:

    这与 Android 或 osmdroid 没有任何关系。

    要了解如何从 OSM 文件创建路由图,请参阅help.openstreetmap.org 的相关答案。引用自它:

    1. 解析所有方式;扔掉那些不是道路的,而对于其他的,记住它们所包含的节点 ID,方法是为每个引用的节点增加一个“链接计数器”。
    2. 第二次解析所有方式;一条路通常会成为一条边,但如果除了第一个和最后一个之外的任何节点的链接计数器大于 1,则在该点将路分成两条边。链接计数器为 1 且既不是第一个也不是最后一个的节点可以被丢弃,除非您需要计算边的长度。
    3. (如果您需要图形节点的几何图形)现在解析 XML 的节点部分,记录您保留的所有节点的坐标。

    还可以查看 OSM wiki 中的 routing 以获取一些一般提示以及现有工具和库。

    关于osmdroid:如果你不依赖离线路由,那么看看osmbonuspack,它支持在线路由。

    如果您不想重新发明轮子,那么只需使用 OSM wiki 中提到的现有离线路由工具之一。

    【讨论】:

      猜你喜欢
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 2015-09-17
      • 2016-11-12
      相关资源
      最近更新 更多