OpenStreetMapデータからレイヤーを作成する
提供: svg2wiki
(版間での差分)
(→練習) |
(→ポイントのデータのレイヤをつくる) |
||
(1人の利用者による、間の20版が非表示) | |||
3行: | 3行: | ||
==ツール== | ==ツール== | ||
* [https://osmcode.org/osmium-tool/ osmium] | * [https://osmcode.org/osmium-tool/ osmium] | ||
− | * [https://www.svgmap.org/devinfo/devkddi/lvl0.1/authoringLayers/bbs/csvLayer/osmGjs2csv/test.html | + | ** OpenStreetMap(OSM)のソースデータ(pbf(Google Protocol Buffers)形式)からデータを抽出するために使用します |
− | * [https://github.com/svgmap/svgMapTools svgMapTools] | + | ** (linuxの各種パッケージマネージャでインストール可能なようです: sudo apt install osmium-tool など) |
+ | * [https://www.svgmap.org/devinfo/devkddi/lvl0.1/authoringLayers/bbs/csvLayer/osmGjs2csv/test.html OpenStreetMapのかなり自由なGeoJSONデータから、ちょっと雑なポイント型のCSVを生成するwebApp] | ||
+ | ** このツールは、どんなFeature TypeでもPoint(すなわち地図上でアイコンとして表示できるもの)に変換する機能を持つ | ||
+ | ** OSMでは同じタグ(地物カテゴリ)でも、ポイント・ポリゴン・ライン どの形でつくられているかは保証されない様子(縮小したら点でも、拡大したらポリゴンというイメージなどがあるのでしょう) | ||
+ | * [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] | ||
==参考情報== | ==参考情報== | ||
* [http://wiki.openstreetmap.org/wiki/JA:Map_Features タグ一覧] ([https://www.okuminavi.jp/access/pdf/OSM_taguitiran.pdf PDF]) | * [http://wiki.openstreetmap.org/wiki/JA:Map_Features タグ一覧] ([https://www.okuminavi.jp/access/pdf/OSM_taguitiran.pdf PDF]) | ||
+ | **OSMのタグとは、地物のカテゴリ(例えばガソリンスタンドなど)を言明する情報。key=valueの組として、一つのフィーチャーに複数設定できる(RDF的) | ||
+ | **key=valueは、例えばamenity=restaurantといった形で、 keyにも、valueにも地物のタイプに関係するワードが入る。この例ではアメニティ関連のレストラン という地物のカテゴリ を示している模様 | ||
* [https://qiita.com/naogify/items/525be5f41a21d4c82805] | * [https://qiita.com/naogify/items/525be5f41a21d4c82805] | ||
==練習== | ==練習== | ||
+ | ===ポイントのデータのレイヤをつくる=== | ||
+ | linux(Ubuntu: windowsの場合もWSLで) | ||
* OSMのpbfデータをローカルに準備(DL)する ( https://download.geofabrik.de/ ) | * OSMのpbfデータをローカルに準備(DL)する ( https://download.geofabrik.de/ ) | ||
+ | ** たとえば日本全体のデータ(2GB程度)をDLする | ||
* ほしい属性の地物をgeoJSONで抽出 | * ほしい属性の地物を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 | ||
20行: | 30行: | ||
</pre></code> | </pre></code> | ||
− | + | * tags-filter: 地図上はポイント表示にしたいが、ポリゴンで登録されている同じ地物種もあるのでnwrが好ましい模様。 | |
+ | ** n: node(点・ポイント) | ||
+ | ** w: way(線及び面(始点終点が一致)) | ||
+ | ** r: relation(接続関係) | ||
− | * | + | * OSMのgeoJSONのpropertiesは正規化とはちょっと言えない状態なので・・・↑のツールの自由な感じのCSV変換webAppにかけてCSV化しよう |
* このCSVをsvgmapのCSVレイヤとか、svgMapToolsを使って可視化する | * このCSVをsvgmapのCSVレイヤとか、svgMapToolsを使って可視化する |
2025年1月30日 (木) 01:59時点における最新版
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を使って可視化する