2017-05-31 19 views
2

オフライン機能を備えたopenstreetmapを使いたいと思います。具体的には、APIを使用せずに特定の住所をジオコードすることが可能かどうかを知りたいと思います。この理由は簡単です。ジオコードするアドレスが何十万もある場合、それは永遠にかかるでしょう。私はすでにシェープファイルを持っていますが、あなたはOSMバックエンドをダウンロードできることは知っていますが、OSMのオフラインバージョンをRにする方法を知らない...オフラインOSMとR

助けてください。

+0

「OSM」は単なるプレーンなデータです。ジオコーダーが必要な場合は、「OSMのオフライン・バージョン」ではなく、オフラインOSMベース・ジオコーダーが必要です。違いを理解しよう。 OSMは未処理のマップデータですが、ジオコーダ、ルータなどはソフトウェアです。利用可能なOSMベースのソフトウェアがたくさんありますが、OSMはまだデータだけでソフトウェア自体はありません。 – scai

答えて

0

私はRで主に働いて、私の問題への解決策を見つけた:

まず、あなたはhttps://github.com/Project-OSRM/osrm-backendのクローンを作成する必要があります。

:次に、あなたは、あなたが次の行(必要に応じて経度緯度を更新)

txt <- getURL("http://127.0.0.1:5000/route/v1/driving/13.388860,53.517037;13.385983,52.496891?overview=false") 

いくつかの余分なノートを呼び出すことができますhttps://www.docker.com/community-edition

country <- "germany" 
# Download new maps - NOTE, this is a large download (more than 3GB) 
download.file(url  = paste0("http://download.geofabrik.de/europe/", country, "-latest.osm.pbf"), 
      destfile = paste0("./Data/POIs/", country, "/latest.osm.pbf")) 
# Download dictionary 
download.file(url  = "https://raw.githubusercontent.com/MorbZ/OsmPoisPbf/master/doc/poi_types.csv", 
      destfile = paste0("./Data/POIs/", country, "/poi_types_dict.csv")) 
pois_dict <- read.csv(paste0("./Data/POIs/", country, "/poi_types_dict.csv", sep = ",")) 
pois_dict <- pois_dict[!is.na(pois_dict$CODE), ] 

# Create local version of search engine car + foot 
cmd1 <- paste0("cd ",getwd(),"/Data/POIs/", country) 
cmd2 <- paste0("docker run -t -v $(pwd):/data osrm/osrm-backend osrm-extract -p /opt/car.lua /data/latest.osm.pbf") 
cmd3 <- paste0("docker run -t -v $(pwd):/data osrm/osrm-backend osrm-contract /data/latest.osrm") 
cmd4 <- paste0("docker run -t -i -p 5000:5000 -v $(pwd):/data osrm/osrm-backend osrm-routed /data/latest.osrm") 

system(paste(cmd1, cmd2, cmd3, cmd4, sep = "; ")) 

ドッキングウィンドウをインストールして起動する必要があります。 1)これは明らかにOSRMのためであるが、同様の技術をOSMにも使用することができる。

2)ファイルのサイズが大きくなることがあります。ドッカーはデフォルトで1000Mbしか割り当てませんので、必要に応じてこれを変更する必要があります。

3)得られた最終結果は、必要なものを得るために(正規表現で)作成する必要があります。

1

オフラインOSMジオコーダの場合、Rパッケージが使用するジオコーダに応じて、またはOSM-based search enginesのいずれかを使用できます。

+0

助けてくれてありがとう、私は非常に新しいので、私は推薦状をダウンロードする場合、どのように私はRとNominatimを "接続"するのですか? –

+0

Nominatimがインストールされている場合、Nominatimにダウンロードしたシェイプファイルをどのように "リンク"しますか? –

+0

理論的には、あなたの地元のNominatim instaceを指すようにURLを変更するだけです。私はRユーザーではないので、この設定をどこに設定するか分かりません。 Nominatimはシェープファイルでは機能しません。通常、XMLまたはPBFであるOSMデータが必要です。 https://wiki.openstreetmap.org/wiki/Nominatim/Installation#Import_and_index_OSM_data – scai

関連する問題