概要
OpenMapTiles.com は、地図のタイルデータの販売、地図サーバ、地図APIのSDKを配布している会社です。
タイルデータはOpenStreetMapのデータを元に作られているようです。
地図サーバはdockerイメージが用意されているので、簡単にセットアップできます。
これらを利用して、Google Mapsなどの地図APIを使うのと同じように、自前で地図サーバを立てて、それを利用してサイトやモバイルアプリに地図を埋め込むことができます。
この記事では、配布されている OpenMapTiles Map Server を使って、地図サーバをセットアップし、別サイトに地図を埋め込むところまでの手順を説明します。
手順
タイルデータをダウンロードする
↑このページから地図データをダウンロードします。国や都市単位でデータをダウンロードできます。
ここでは Osaka Kyoto を選んでみます。
![Downloads__OpenStreetMap_Tiles__GeoData_and_OpenData_Maps.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F529%2Fe2a3e377-8b84-7ef4-1275-f2e335f352d9.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=73dd3c6454ec277a391936feb0f49bb5)
OpenStreetMap vector tiles のダウンロードに進みます。
![Osaka_Kyoto_OpenStreetMap_Tiles__GeoData_and_OpenData_Maps.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F529%2F393cb99a-da0a-f43f-661e-954f60401608.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=56142bc99f3b8569d482c140b8040fef)
使用用途を聞かれます。Commercialにも使うことができますが、1タイルデータあたり10USDかかります。これと別に、すべての地図データを制限なくダウンロードできる 年間512USDのプランもあります。
![OpenStreetMap_vector_tiles_of_Osaka_Kyoto_OpenStreetMap_Tiles__GeoData_and_OpenData_Maps1.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F529%2F082cdac7-74b4-4e38-c8b9-956db1bb8c15.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=3dd94370da92317ff45aab0789e04fc4)
今は評価に使いたいので、evaluation or personal non-commercial project を選びます。
評価目的ならOpenStreetMap vector tiles は無料でダウンロードできます。
ダウンロードして、地図サーバを動作させたいディレクトリに移動しましょう。
![OpenStreetMap_vector_tiles_of_Osaka_Kyoto_OpenStreetMap_Tiles__GeoData_and_OpenData_Maps.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F529%2F6918aafa-5691-8c34-205b-d91dbffa53c2.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=01117ec28101da8c1a0cf5249369498d)
OpenMapTiles Map Serverを起動する
タイルデータを置いたディレクトリで以下の docker コマンドを実行してください。
docker run --rm -it -v $(pwd):/data -p 8080:80 klokantech/openmaptiles-server
ブラウザで http://localhost:8080/ にアクセスします。インストールのウィザードが表示されます。
![Wizard_と__無名____-_VIM_と_mapbox_gl_test.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F529%2F87b8d83e-f848-1ec7-9556-58c5ca02137d.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=3d2692066af7b12e41950090f8152793)
![Wizard_と__無名____-_VIM.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F529%2F1e7e45ae-9069-6e1f-8f59-3d2b5849173b.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=4e39292c22520b95abf81af705cba8c6)
REGIONにダウンロードしたタイルデータが認識されてます。(かしこい)
CONTINUEで続行します。
![Wizard.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F529%2F83588429-0752-9638-4489-ca0edd58d921.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ecb1e1c0f64dbe540f1df16a38950dd3)
すきなスタイルを選んでOK。
![Wizard_と__無名____-_VIM 2.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F529%2Fe385ad08-ad9d-7b42-302a-3fce5e1abf20.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=1f3389fa52df89fbf9ee7f82c2ee1753)
![Wizard 2.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F529%2F66c907fa-46e2-73de-6917-3da28124bfc2.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=36495289266cc0801204dd42a209b5fb)
これで地図サーバのセットアップが完了です。ディレクトリにconfig.jsonが生成されています。
VIEWERで地図が見れるので楽しんで下さい。
![OpenMapTiles_Map_Server.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F529%2F42a1742b-19ed-7d09-2e2e-8c77a430fd09.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=475381154bf34202cb5bfa92c5e73018)
別サイトに地図を埋め込んでみる
このリポジトリを clone してきて、
http-server -p 8090
などのコマンドで http server を起動して、ブラウザから http://localhost:8090/ にアクセスしてみてください。
埋め込まれた地図が見れたら成功です。
![map_ss.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F529%2F1ba7bf0d-9cd1-0ef9-3a79-cde2665bbf4f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=d1adabeeed22226fdd112445edadd761)
style-cdn.json は、https://openmaptiles.org/docs/website/mapbox-gl-js/ で紹介されてる OSM Bright スタイルをコピって、タイルの参照先を http://localhsot:8080/ に書き換えたものです。
index.html に地図埋め込みを記述してます。これは https://openmaptiles.org/docs/website/mapbox-gl-js/ のサンプルを編集したものです。
まとめ
OpenMapTiles.com は大変すばらしいプロダクトだと感じました。
地図APIは商用利用すると結構料金がかかります。
ログインが必要な会員用サイトで地図APIを利用しようとしたときの価格をざっとしらべたところ、
- Google Maps だとライセンスが年間120万から
- YOLPだとライセンスが年間100万から
- Bing maps だと年間125000トランザクションまでは無料で、それ超えると50万円から
これくらいかかります。従量課金制なので、利用量が増えるに従って料金も増加します。
それが、OpenMapTilesだとタイルデータを買い切りで6万円ほどでいくらでも地図データをダウンロードできるわけなので、サーバ管理できる人であればコスパが優れています。サーバセットアップが簡単なのもすばらしい。
なので地図APIの利用を検討する際に、OpenMapTiles.com も検討されてはいかがでしょうか。
以上です。