[MaaStep] OpenStreetMap構築時のトラブルと解決法
2019-06-18
azblob://2022/11/11/eyecatch/2019-06-18-maastep-how-to-build-osm-000.png

こんにちは、2日間Apacheと格闘してた佐藤さんに脅されて書いてます。石川です。
MaaS関係のプロジェクトでOpenStreetMapを構築したので参考にしたところと注意点を軽くまとめてみようと思います。

OpenStreetMapについては脅してきた佐藤さんの記事をご覧ください。

環境

  • OS: Ubuntu 16.04
  • VM: Azure VM(Standard B2s)
    • CPU: Xeon E5-2673 x2 core
    • RAM: 4GiB
    • Disk: Standard SSD 30GiB

今回は国内の1地域だけ扱うので小さめのVMでも大丈夫です。日本全体や複数国扱う場合にはそれに応じたスペックのものを使いましょう。

構築

基本はこちらのサイトの手順に沿って行います。

エラーに遭遇

Step 4の

./get-shapefiles.sh

を実行すると何やらエラーが出てきます。

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
Warning: Failed to create the file
Warning: data/simplified-land-polygons-complete-3857.zip: No such file or
Warning: directory

どうやらcurlでファイルをDLする部分がうまくいっていない様子。少し中身を見てみましょう。

# simplified-land-polygons-complete-3857
echo "downloading simplified-land-polygons-complete-3857..."
curl -z "data/simplified-land-polygons-complete-3857.zip" -L -o "data/simplified-land-polygons-complete-3857.zip" "http://data.openstreetmapdata.com/simplified-land-polygons-complete-3857.zip"
echo "simplified-land-polygons-complete-3857..."
unzip $UNZIP_OPTS data/simplified-land-polygons-complete-3857.zip \
  simplified-land-polygons-complete-3857/simplified_land_polygons.shp \
  simplified-land-polygons-complete-3857/simplified_land_polygons.shx \
  simplified-land-polygons-complete-3857/simplified_land_polygons.prj \
  simplified-land-polygons-complete-3857/simplified_land_polygons.dbf \
  simplified-land-polygons-complete-3857/simplified_land_polygons.cpg \
  -d data/
curl -z "data/simplified-land-polygons-complete-3857.zip" -L -o "data/simplified-land-polygons-complete-3857.zip" "http://data.openstreetmapdata.com/simplified-land-polygons-complete-3857.zip"

どうやらここでエラーが出ているようですね。解決してあげましょう。

ひとまず指定されているURLをブラウザで開いてみます。

Not Foundのエラー画面

まあエラーが出てるので開けるわけありません。

ただ、Webサーバーは動いてるようなのでこのドメイン
( http://data.openstreetmapdata.com )のルートを見に行きましょう。

Service discontinuedのエラー画面

おや、何かありますね。

You can find a (partial) replacement at https://osmdata.openstreetmap.de/

どうやら別ドメインで同じリソースが拾えそうな雰囲気。というわけで記述してあるURLを開きましょう。

OpenStreetMapのデータダウンロード画面

「なんかこれありそうじゃね?」

リンクをクリックしていくと

OpenStreetMapのデータダウンロード画面

なんかありそうですね。 とりあえずwgetを試してみます。

wget https://osmdata.openstreetmap.de/download/land-polygons-complete-4326.zip
Resolving osmdata.openstreetmap.de (osmdata.openstreetmap.de)... 116.203.99.53
Connecting to osmdata.openstreetmap.de (osmdata.openstreetmap.de)|116.203.99.53|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 562523038 (536M) [application/zip]
Saving to: ‘land-polygons-complete-4326.zip.2land-polygons-complete-4   2%[                                   ]  14.15M  4.74MB/s             

ダウンロードができてますね!

ひとまずこのダウンロードは中断して先ほどのスクリプトを修正してあげましょう。

http://data.openstreetmapdata.com/

https://osmdata.openstreetmap.de/download/

に置換してあげるだけです。簡単ですね。

あとの工程は手順通り行うだけとなります。では出来上がったOSMを開いてみましょう。

世界地図の縮小版の画面

世界地図のめちゃめちゃ縮小版っぽいのが開けたら正しく構築できています。

あとはleafletなどから呼んで煮るなり焼くなりご自由にしてください。

おつかれさまでした。