识别 openstreetmap 数据 (.pbf) 中的十字路口节点
Identify crossroad nodes in openstreetmap data (.pbf)
有谁知道是否有办法只分离 .pbf 文件中包含的十字路口节点?此文件的格式中是否包含此线索(如果节点是否为十字路口)?
我不知道这个任务有现成的解决方案,但它应该相对容易做到。
为了解析 .pbf 文件,我建议使用像 Osmosis or Osmium 这样的现有库。这样,您只需要实现用例的实际语义。
节点本身没有任何将它们标记为十字路口的特殊属性。因此,您将不得不查看包含节点的方式。
实施时的一些注意事项:
- 您需要检查道路的标签以确定它是否是道路。最相关的键是 highway。细节取决于您的具体用例——例如,您需要决定人行道、林道、车道……是否应该算在内。
- 重要的是一个节点的连接方式段的数量,而不是方式的数量。例如,作为两条路的一部分的节点可能是十字路口(如果至少有一条路继续超出该节点),也可能不是(如果两条路 start/end 在该节点)。
解决您的问题的另一种方法是使用 new Atlas project.
作为将 .osm.pbf
文件加载到内存中的 Atlas 文件的一部分,它负责在道路上进行 way sectioning:
- Load your pbf file into an Atlas. You will then have an Atlas object that you could save to a file 并重复使用。
- 使用the Atlas APIs访问所有路口
最后,每个在双向道路上连接超过 4 Edge
或在单向道路上连接超过 2 Edge
的图集 Node
将是如果我正确理解你的问题,我会成为候选人。
有谁知道是否有办法只分离 .pbf 文件中包含的十字路口节点?此文件的格式中是否包含此线索(如果节点是否为十字路口)?
我不知道这个任务有现成的解决方案,但它应该相对容易做到。
为了解析 .pbf 文件,我建议使用像 Osmosis or Osmium 这样的现有库。这样,您只需要实现用例的实际语义。
节点本身没有任何将它们标记为十字路口的特殊属性。因此,您将不得不查看包含节点的方式。
实施时的一些注意事项:
- 您需要检查道路的标签以确定它是否是道路。最相关的键是 highway。细节取决于您的具体用例——例如,您需要决定人行道、林道、车道……是否应该算在内。
- 重要的是一个节点的连接方式段的数量,而不是方式的数量。例如,作为两条路的一部分的节点可能是十字路口(如果至少有一条路继续超出该节点),也可能不是(如果两条路 start/end 在该节点)。
解决您的问题的另一种方法是使用 new Atlas project.
作为将 .osm.pbf
文件加载到内存中的 Atlas 文件的一部分,它负责在道路上进行 way sectioning:
- Load your pbf file into an Atlas. You will then have an Atlas object that you could save to a file 并重复使用。
- 使用the Atlas APIs访问所有路口
最后,每个在双向道路上连接超过 4 Edge
或在单向道路上连接超过 2 Edge
的图集 Node
将是如果我正确理解你的问题,我会成为候选人。