OpenStreetMapデータからレイヤーを作成する
提供: svg2wiki
				
								
				(版間での差分)
				
																
				
				
								
				|  (→ツール) |  (→ポイントのデータのレイヤをつくる) | ||
| (1人の利用者による、間の14版が非表示) | |||
| 1行: | 1行: | ||
| − | + | OpenStreetMapから主にポイントの地物を取り出し、静的なSVGMapレイヤーを構築する方法をメモします | |
| ==ツール== | ==ツール== | ||
| * [https://osmcode.org/osmium-tool/ osmium] | * [https://osmcode.org/osmium-tool/ osmium] | ||
| + | ** OpenStreetMap(OSM)のソースデータ(pbf(Google Protocol Buffers)形式)からデータを抽出するために使用します | ||
| ** (linuxの各種パッケージマネージャでインストール可能なようです: sudo apt install osmium-tool など) | ** (linuxの各種パッケージマネージャでインストール可能なようです: sudo apt install osmium-tool など) | ||
| * [https://www.svgmap.org/devinfo/devkddi/lvl0.1/authoringLayers/bbs/csvLayer/osmGjs2csv/test.html OpenStreetMapのかなり自由なGeoJSONデータから、ちょっと雑なポイント型のCSVを生成するwebApp] | * [https://www.svgmap.org/devinfo/devkddi/lvl0.1/authoringLayers/bbs/csvLayer/osmGjs2csv/test.html OpenStreetMapのかなり自由なGeoJSONデータから、ちょっと雑なポイント型のCSVを生成するwebApp] | ||
| ** このツールは、どんなFeature TypeでもPoint(すなわち地図上でアイコンとして表示できるもの)に変換する機能を持つ | ** このツールは、どんなFeature TypeでもPoint(すなわち地図上でアイコンとして表示できるもの)に変換する機能を持つ | ||
| ** OSMでは同じタグ(地物カテゴリ)でも、ポイント・ポリゴン・ライン どの形でつくられているかは保証されない様子(縮小したら点でも、拡大したらポリゴンというイメージなどがあるのでしょう) | ** OSMでは同じタグ(地物カテゴリ)でも、ポイント・ポリゴン・ライン どの形でつくられているかは保証されない様子(縮小したら点でも、拡大したらポリゴンというイメージなどがあるのでしょう) | ||
| − | * [https://github.com/svgmap/svgMapTools svgMapTools] | + | * [https://github.com/svgmap/svgMapTools svgMapTools] : 生成したCSVから静的なSVGMapコンテンツをつくる場合はこれが使えます | 
| * [https://svgmap.org/devinfo/devkddi/lvl0.1/demos/demo0.html#xywh=global:112.133130,22.000000,50.733740,25.000000&visibleLayer=CSV%E5%85%A5%E5%8A%9B%E5%8F%AF%E8%A6%96%E5%8C%96 CSV Layer] | * [https://svgmap.org/devinfo/devkddi/lvl0.1/demos/demo0.html#xywh=global:112.133130,22.000000,50.733740,25.000000&visibleLayer=CSV%E5%85%A5%E5%8A%9B%E5%8F%AF%E8%A6%96%E5%8C%96 CSV Layer] | ||
| 15行: | 16行: | ||
| **key=valueは、例えばamenity=restaurantといった形で、 keyにも、valueにも地物のタイプに関係するワードが入る。この例ではアメニティ関連のレストラン という地物のカテゴリ を示している模様 | **key=valueは、例えばamenity=restaurantといった形で、 keyにも、valueにも地物のタイプに関係するワードが入る。この例ではアメニティ関連のレストラン という地物のカテゴリ を示している模様 | ||
| * [https://qiita.com/naogify/items/525be5f41a21d4c82805] | * [https://qiita.com/naogify/items/525be5f41a21d4c82805] | ||
| + | * OSMで地物にどのようなタグが振られているかを地図上でインタラクティブに確認: | ||
| + | ** ( https://www.openstreetmap.org/ )にアクセス | ||
| + | ** 画面右隅中の[↑? 地物を検索]ボタンでオブジェクト近傍をクリック | ||
| + | ** 候補が左に列挙されるので、知りたい地物を選択するとタグが表示される | ||
| ==練習== | ==練習== | ||
| 20行: | 25行: | ||
| linux(Ubuntu: windowsの場合もWSLで) | linux(Ubuntu: windowsの場合もWSLで) | ||
| * OSMのpbfデータをローカルに準備(DL)する ( https://download.geofabrik.de/ ) | * OSMのpbfデータをローカルに準備(DL)する ( https://download.geofabrik.de/ ) | ||
| + | ** たとえば日本全体のデータ(2GB程度)をDLする | ||
| − | *  | + | * 取り出したい属性の地物をgeoJSONで抽出 | 
| + | ** tags-filter: タグをもとにフィルター(抽出), export: geojsonなどに変換 | ||
| <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 | ||
| 27行: | 34行: | ||
| </pre></code> | </pre></code> | ||
| − | * 地図上はポイント表示にしたいが、ポリゴンで登録されている同じ地物種もあるのでnwrが好ましい模様。 | + | * tags-filter: 地図上はポイント表示にしたいが、ポリゴンで登録されている同じ地物種もあるのでnwrが好ましい模様。 | 
| ** n: node(点・ポイント) | ** n: node(点・ポイント) | ||
| ** w: way(線及び面(始点終点が一致)) | ** w: way(線及び面(始点終点が一致)) | ||
| ** r: relation(接続関係) | ** r: relation(接続関係) | ||
| − | *  | + | * OSMのgeoJSONのpropertiesは正規化とはちょっと言えない状態なので・・・↑のツールの自由な感じのCSV変換webAppにかけてCSV化します | 
| * このCSVをsvgmapのCSVレイヤとか、svgMapToolsを使って可視化する | * このCSVをsvgmapのCSVレイヤとか、svgMapToolsを使って可視化する | ||
2025年7月2日 (水) 10:50時点における最新版
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]
-  OSMで地物にどのようなタグが振られているかを地図上でインタラクティブに確認:
- ( https://www.openstreetmap.org/ )にアクセス
- 画面右隅中の[↑? 地物を検索]ボタンでオブジェクト近傍をクリック
- 候補が左に列挙されるので、知りたい地物を選択するとタグが表示される
 
[編集] 練習
[編集] ポイントのデータのレイヤをつくる
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を使って可視化する
