「OpenStreetMapデータからレイヤーを作成する」の版間の差分
 (→ポイントのデータのレイヤをつくる)  | 
				 (→ポイントのデータのレイヤをつくる)  | 
				||
| 24行目: | 24行目: | ||
* ほしい属性の地物をgeoJSONで抽出  | * ほしい属性の地物をgeoJSONで抽出  | ||
| + | ** tags-filter: フィルター(抽出), export: gepojsonなどに変換  | ||
<code><pre>  | <code><pre>  | ||
osmium tags-filter jaAllData/japan-20241126.osm.pbf nwr/amenity=restaurant,cafe,fast_food -o eatplace.pbf  | osmium tags-filter jaAllData/japan-20241126.osm.pbf nwr/amenity=restaurant,cafe,fast_food -o eatplace.pbf  | ||
2025年1月30日 (木) 01:56時点における版
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: gepojsonなどに変換
 
 
osmium tags-filter jaAllData/japan-20241126.osm.pbf nwr/amenity=restaurant,cafe,fast_food -o eatplace.pbf
osmium export eatplace.pbf -o eatplace.geojson
- 地図上はポイント表示にしたいが、ポリゴンで登録されている同じ地物種もあるのでnwrが好ましい模様。
- n: node(点・ポイント)
 - w: way(線及び面(始点終点が一致))
 - r: relation(接続関係)
 
 
- OSMのgeoJSONのpropertiesは正規化とはちょっと言えない状態なので・・・↑の自由な感じのCSV変換webAppにかけてCSV化しよう
 
- このCSVをsvgmapのCSVレイヤとか、svgMapToolsを使って可視化する