3.5K Views
May 14, 22
スライド概要
小江戸LUG 2022/05
Georepublic / OSGeo.JP / Japan Unix Society / OpenStreetMap Foundation Japan
tile.openstreetmap.jp の Planet対応 小江戸LUG 2022/05 Taro Matsuzawa @smellman 2022/05/12
自己紹介 • Georepublic Japan GIS Specialist / R&D / CISO • 日本UNIXユーザ会会長 • OSGeo.JP理事 • OpenStreetMap Foundation Japan サーバ担当 • Breakcore クラスタ
tile.openstreetmap.jpについて
日本のタイルサーバ • OpenStreetMapの地図サーバ、Mapbox Vector Tile及びラスタタイルを提供 • 元々は国内向け(日本region)の地図サーバとして提供 • 北方領土とか竹島とかを雑に解決している • ビルドツール: OpenMapTiles • 国内のビルドで三日かかる • サーバ: nginx + Varnish Cache + TileserverGL
ある日の会話 (注: OSMUSでのDMのやりとりです) • 相手「Planetilerって知ってる?」 • 俺「知ってるけど使ったこと無い」 • 相手「OpenMapTilesの160倍速いよ」 • 俺「まじすか!」
Planetiler
Planetilerとは • Javaで書かれたOpenMapTiles互換のMapbox Vector Tileのレンダリングツ ール • スキーマの変更もJavaのコードを書くという極めてマッチョな作り • 必要なのはOpenJDK 16以上という手軽さはある
初期の対応 #!/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
20時間で作成 できた OpenMapTilesでは120日ぐらい見積もってた
ツッコミ OSMUSでのやりとり • 俺「メモリ16GB、スワップメモリ512GBでなんとかできたよ」 • 作者「お、まじで。スワップどれぐらい食った?」 • 俺「90GB以上食った」 • 作者「ならmmap使った方がいいんじゃないかな」 • 俺「お、試して見る」
改良版 #!/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
6時間ででき た!!!! ちなみにもっと速い人は1.5時間ぐらいらしいっす
Planet対応 • 毎週月曜日に行っていた作業をPlanetのダンプファイルがs3のミラーに反映 される土曜日の夜中に変更 • aws s3 ls --no-sign-request s3://osm-pds/2022/ • 実家でレンダリングをしてポートフォワードしてレンタリング結果を確認 • 問題なければファイルサーバにアップしてからtile.openstreetmap.jpへ反 映
まとめ • Planetilerを用いることで、世界単位の地図サーバが展開できるようになった • Javaのプロダクトだと言って触らないのはよくないなと思った • 海外にもテストに使っていいよと手軽に言えるようになった • OSM Japan及びOSMUSには展開している • OpenStreetMapの問題ではなく、プログラム上の問題などあればどんどん教えて 欲しい • 作者と直で話せる環境がある