「OpenStreetMapデータからレイヤーを作成する」の版間の差分
(→ポイントのデータのレイヤをつくる) |
(→ツール) |
||
| (同じ利用者による、間の6版が非表示) | |||
| 1行目: | 1行目: | ||
| − | + | OpenStreetMapから主にポイントの地物を取り出し、静的なSVGMapレイヤーを構築する方法をメモします | |
==ツール== | ==ツール== | ||
| 8行目: | 8行目: | ||
** このツールは、どんなFeature TypeでもPoint(すなわち地図上でアイコンとして表示できるもの)に変換する機能を持つ | ** このツールは、どんなFeature TypeでもPoint(すなわち地図上でアイコンとして表示できるもの)に変換する機能を持つ | ||
** OSMでは同じタグ(地物カテゴリ)でも、ポイント・ポリゴン・ライン どの形でつくられているかは保証されない様子(縮小したら点でも、拡大したらポリゴンというイメージなどがあるのでしょう) | ** OSMでは同じタグ(地物カテゴリ)でも、ポイント・ポリゴン・ライン どの形でつくられているかは保証されない様子(縮小したら点でも、拡大したらポリゴンというイメージなどがあるのでしょう) | ||
| − | * [https://github. | + | * SVGMapのレイヤー化 |
| − | * [https://svgmap. | + | ** [https://svgmap.github.io/svgMapDemo/#xywh=global:119.824742,24.000000,28.350515,22.000000&visibleLayer=CSV%E3%83%87%E3%83%BC%E3%82%BF%E5%8F%AF%E8%A6%96%E5%8C%96 CSV Layer] : svgmapAppLayersの csvLayerを使用して可視化 |
| + | *** [https://svgmap.github.io/svgMapDemo/#xywh=global:119.824742,24.000000,28.350515,22.000000&visibleLayer=OpenStreetMap%E5%90%84%E7%A8%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E6%83%85%E5%A0%B1%2320241202142702_1672484540.json multiCsvViewレイヤー]として永続化することもできます [https://github.com/svgmap/svgmapAppLayers/tree/main/appLayers/multiCsvView 参考情報] | ||
| + | ** [https://github.com/svgmap/svgMapTools svgMapTools] : 生成したCSVから静的なSVGMapコンテンツをつくる場合はこれが使えます | ||
==参考情報== | ==参考情報== | ||
| 16行目: | 18行目: | ||
**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/ )にアクセス | ||
| + | ** 画面右隅中の[↑? 地物を検索]ボタンでオブジェクト近傍をクリック | ||
| + | ** 候補が左に列挙されるので、知りたい地物を選択するとタグが表示される | ||
==練習== | ==練習== | ||
| 23行目: | 29行目: | ||
** たとえば日本全体のデータ(2GB程度)をDLする | ** たとえば日本全体のデータ(2GB程度)をDLする | ||
| − | * | + | * 取り出したい属性の地物をgeoJSONで抽出 |
** tags-filter: タグをもとにフィルター(抽出), export: geojsonなどに変換 | ** tags-filter: タグをもとにフィルター(抽出), export: geojsonなどに変換 | ||
<code><pre> | <code><pre> | ||
| 35行目: | 41行目: | ||
** r: relation(接続関係) | ** r: relation(接続関係) | ||
| − | * | + | * OSMのgeoJSONのpropertiesは正規化とはちょっと言えない状態なので・・・↑のツールの自由な感じのCSV変換webAppにかけてCSV化します |
* このCSVをsvgmapのCSVレイヤとか、svgMapToolsを使って可視化する | * このCSVをsvgmapのCSVレイヤとか、svgMapToolsを使って可視化する | ||
2026年7月31日 (金) 08:13時点における最新版
OpenStreetMapから主にポイントの地物を取り出し、静的なSVGMapレイヤーを構築する方法をメモします
ツール
- osmium
- OpenStreetMap(OSM)のソースデータ(pbf(Google Protocol Buffers)形式)からデータを抽出するために使用します
- (linuxの各種パッケージマネージャでインストール可能なようです: sudo apt install osmium-tool など)
- OpenStreetMapのかなり自由なGeoJSONデータから、ちょっと雑なポイント型のCSVを生成するwebApp
- このツールは、どんなFeature TypeでもPoint(すなわち地図上でアイコンとして表示できるもの)に変換する機能を持つ
- OSMでは同じタグ(地物カテゴリ)でも、ポイント・ポリゴン・ライン どの形でつくられているかは保証されない様子(縮小したら点でも、拡大したらポリゴンというイメージなどがあるのでしょう)
- SVGMapのレイヤー化
- CSV Layer : svgmapAppLayersの csvLayerを使用して可視化
- multiCsvViewレイヤーとして永続化することもできます 参考情報
- svgMapTools : 生成したCSVから静的なSVGMapコンテンツをつくる場合はこれが使えます
- CSV Layer : svgmapAppLayersの csvLayerを使用して可視化
参考情報
- タグ一覧 (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を使って可視化する