代码之家  ›  专栏  ›  技术社区  ›  grasshopper

开放的街道地图-连续的道路?

  •  3
  • grasshopper  · 技术社区  · 11 年前

    我在Postgres中导入了瑞士的OSM数据,我有兴趣获得高速公路连续部分的道路数据(我知道这个名字),也就是连接两个特定城市的部分。这条高速公路相当大(A1),将许多城市连接在一起。

    我不确定路段序列是如何存储在postgres中的(即,如何知道一个路段直接在另一个路段之后)。我应该如何查询Postgres以获得从一个城市到另一个城市的路线的行字符串?通过查询,我可以在QuantumGis中可视化整个高速公路(横跨多个城市)的数据:

    select osm_id,way from planet_osm_roads where highway='motorway' and ref='A1';
    

    但我不知道如何只获取我感兴趣的osm_id,按照它们在路线中出现的顺序。我不想在where子句中做边界框约束,因为我正在寻找一个通用的解决方案,而且我仍然不确定如何保存路段序列的顺序。

    1 回复  |  直到 11 年前
        1
  •  1
  •   grasshopper    11 年前

    我这样做的方式是使用pgrouting,即他们的pgr_dijkstra算法。我使用osm2p灌浆工具将OSM数据加载到适合pgrouting使用的格式中。