簡體   English   中英

如何從 geojson 數據創建 OSRM 文件?

[英]How can I create an OSRM file from geojson data?

我有一個包含highway=footway路徑的 geojson 數據文件,我想使用 OSRM 來查找多個點之間的路線(即,不僅是從 A 到 B 的最有效路徑,還包括旅行推銷員之類的路徑)。

OSRM 文檔中,我看到要使用自定義數據而不是來自 OpenStreetMap 的數據,我需要一個 OSRM 文件,我顯然可以“通過在 node_modules/osrm/lib/binding/ 和默認配置文件中運行 OSRM 二進制文件 [shipped] 來制作” ”。

我覺得這很模糊,我不知道如何繼續。 上面鏈接的文檔是指 OSRM 后端文檔,但我沒有找到與在那里創建 OSRM 文件相關的任何內容。 我通過npm得到了node_modules/osrm目錄,但是osrm/lib/binding目錄下什么都沒有……

如何繼續使用我的數據進行 OSRM 路由? 或者,如果有一個更簡單的解決方案來解決我要實施的問題,那會是什么?

我能夠按照這個“管道”創建一個 osrm 文件:

  1. 使用JOSM將 geojson 文件轉換為 osm(或以 osm 文件開頭)。 您可以通過打開 geojson 文件並單擊文件 > 另存為...,然后選擇 OSM 文件格式來執行此操作。
  2. 使用osmconvert添加版本、時間戳和變更集標簽:
$ osmconvert64 intput_file.osm --fake-author -o=output_file.osm
  1. 使用osmosis將 osm 文件轉換為二進制文件:
$ osmosis --rx input_file.osm --wb output_file.osm.pbf omitmetadata=true
  1. 使用 OSRM Docker 容器創建 osrm 文件。 安裝 Docker 桌面后:
$ docker run -t -v "absolute/path/to/data":/data osrm/osrm-backend osrm-extract -p /opt/profile.lua /data/file_name.osm.pbf
$ docker run -t -v "absolute/path/to/data":/data osrm/osrm-backend osrm-contract /data/file_name.osrm

筆記:

  • 對於 docker 步驟,您必須創建一個data目錄,並且數據的絕對路徑應鏈接到該目錄。
  • osrm-extract輸入使用的 file_name 必須與osrm-contract輸出相同,因為 OSRM 將使用該名稱創建一些其他文件,它將嘗試在合同步驟中找到這些文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM