tile.openstreetmap.jpのPlanet対応

3.5K Views

May 14, 22

スライド概要

小江戸LUG 2022/05

profile-image

Georepublic / OSGeo.JP / Japan Unix Society / OpenStreetMap Foundation Japan

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

tile.openstreetmap.jp の Planet対応 小江戸LUG 2022/05 Taro Matsuzawa @smellman 2022/05/12

2.

自己紹介 • Georepublic Japan GIS Specialist / R&D / CISO • 日本UNIXユーザ会会長 • OSGeo.JP理事 • OpenStreetMap Foundation Japan サーバ担当 • Breakcore クラスタ

3.

tile.openstreetmap.jpについて

4.

日本のタイルサーバ • OpenStreetMapの地図サーバ、Mapbox Vector Tile及びラスタタイルを提供 • 元々は国内向け(日本region)の地図サーバとして提供 • 北方領土とか竹島とかを雑に解決している • ビルドツール: OpenMapTiles • 国内のビルドで三日かかる • サーバ: nginx + Varnish Cache + TileserverGL

5.

ある日の会話 (注: OSMUSでのDMのやりとりです) • 相手「Planetilerって知ってる?」 • 俺「知ってるけど使ったこと無い」 • 相手「OpenMapTilesの160倍速いよ」 • 俺「まじすか!」

6.

Planetiler

7.

Planetilerとは • Javaで書かれたOpenMapTiles互換のMapbox Vector Tileのレンダリングツ ール • スキーマの変更もJavaのコードを書くという極めてマッチョな作り • 必要なのはOpenJDK 16以上という手軽さはある

8.

初期の対応 #!/usr/bin/env bash set -e java -Xmx100g \ -jar planetiler.jar \ ̀# Download the latest planet.osm.pbf from s3://osm-pds bucket̀ \ --area=planet --bounds=world --download \ ̀# Accelerate the download by fetching the 10 1GB chunks at a time in parallel̀ \ --download-threads=10 --download-chunk-size-mb=1000 \ ̀# Also download name translations from wikidatà \ --fetch-wikidata \ --mbtiles=output.mbtiles \ --nodemap-type=array ̶nodemap-storage=ram 2>&1 | tee logs.txt

9.

20時間で作成 できた OpenMapTilesでは120日ぐらい見積もってた

10.

ツッコミ OSMUSでのやりとり • 俺「メモリ16GB、スワップメモリ512GBでなんとかできたよ」 • 作者「お、まじで。スワップどれぐらい食った?」 • 俺「90GB以上食った」 • 作者「ならmmap使った方がいいんじゃないかな」 • 俺「お、試して見る」

11.

改良版 #!/usr/bin/env bash set -e java -Xmx20g \ -jar planetiler.jar \ ̀# Download the latest planet.osm.pbf from s3://osm-pds bucket̀ \ --area=planet --bounds=world --download \ ̀# Accelerate the download by fetching the 10 1GB chunks at a time in parallel̀ \ --download-threads=10 --download-chunk-size-mb=1000 \ ̀# Also download name translations from wikidatà \ --fetch-wikidata \ --mbtiles=output.mbtiles \ --nodemap-type=array --nodemap-storage=mmap 2>&1 | tee logs.txt

12.

6時間ででき た!!!! ちなみにもっと速い人は1.5時間ぐらいらしいっす

13.

Planet対応 • 毎週月曜日に行っていた作業をPlanetのダンプファイルがs3のミラーに反映 される土曜日の夜中に変更 • aws s3 ls --no-sign-request s3://osm-pds/2022/ • 実家でレンダリングをしてポートフォワードしてレンタリング結果を確認 • 問題なければファイルサーバにアップしてからtile.openstreetmap.jpへ反 映

15.

まとめ • Planetilerを用いることで、世界単位の地図サーバが展開できるようになった • Javaのプロダクトだと言って触らないのはよくないなと思った • 海外にもテストに使っていいよと手軽に言えるようになった • OSM Japan及びOSMUSには展開している • OpenStreetMapの問題ではなく、プログラム上の問題などあればどんどん教えて 欲しい • 作者と直で話せる環境がある