OpenStreetMapデータからレイヤーを作成する
提供: svg2wiki
OpenStreetMapから静的なSVGMapレイヤーを構築する方法をメモします
目次 |
ツール
- osmium
- OpenStreetMap(OSM)のソースデータ(pbf(Google Protocol Buffers)形式)からデータを抽出するために使用します
- (linuxの各種パッケージマネージャでインストール可能なようです: sudo apt install osmium-tool など)
- OpenStreetMapのかなり自由なGeoJSONデータから、ちょっと雑なポイント型のCSVを生成するwebApp
- このツールは、どんなFeature TypeでもPoint(すなわち地図上でアイコンとして表示できるもの)に変換する機能を持つ
- OSMでは同じタグ(地物カテゴリ)でも、ポイント・ポリゴン・ライン どの形でつくられているかは保証されない様子(縮小したら点でも、拡大したらポリゴンというイメージなどがあるのでしょう)
- svgMapTools : 生成したCSVから静的なSVGMapコンテンツをつくる場合はこれが使えます
- CSV Layer
参考情報
- タグ一覧 (PDF)
- OSMのタグとは、地物のカテゴリ(例えばガソリンスタンドなど)を言明する情報。key=valueの組として、一つのフィーチャーに複数設定できる(RDF的)
- key=valueは、例えばamenity=restaurantといった形で、 keyにも、valueにも地物のタイプに関係するワードが入る。この例ではアメニティ関連のレストラン という地物のカテゴリ を示している模様
- [1]
練習
ポイントのデータのレイヤをつくる
linux(Ubuntu: windowsの場合もWSLで)
- OSMのpbfデータをローカルに準備(DL)する ( https://download.geofabrik.de/ )
- たとえば日本全体のデータ(2GB程度)をDLする
- ほしい属性の地物をgeoJSONで抽出
- tags-filter: タグをもとにフィルター(抽出), export: geojsonなどに変換
osmium tags-filter jaAllData/japan-20241126.osm.pbf nwr/amenity=restaurant,cafe,fast_food -o eatplace.pbf
osmium export eatplace.pbf -o eatplace.geojson
- tags-filter: 地図上はポイント表示にしたいが、ポリゴンで登録されている同じ地物種もあるのでnwrが好ましい模様。
- n: node(点・ポイント)
- w: way(線及び面(始点終点が一致))
- r: relation(接続関係)
- OSMのgeoJSONのpropertiesは正規化とはちょっと言えない状態なので・・・↑のツールの自由な感じのCSV変換webAppにかけてCSV化しよう
- このCSVをsvgmapのCSVレイヤとか、svgMapToolsを使って可視化する