OpenStreetMapデータからレイヤーを作成する

提供: svg2wiki
(版間での差分)
移動: 案内, 検索
(ページの作成:「OpenStreetMapから静的なSVGMapレイヤーを構築する方法をメモします == 必要なツール == * [https://osmcode.org/osmium-tool/ osmium] * [https://git...」)
 
(ポイントのデータのレイヤをつくる)
 
(1人の利用者による、間の34版が非表示)
1行: 1行:
 
OpenStreetMapから静的なSVGMapレイヤーを構築する方法をメモします
 
OpenStreetMapから静的なSVGMapレイヤーを構築する方法をメモします
  
== 必要なツール ==
+
==ツール==
 
* [https://osmcode.org/osmium-tool/ osmium]
 
* [https://osmcode.org/osmium-tool/ osmium]
* [https://github.com/svgmap/svgMapTools svgMapTools]
+
** OpenStreetMap(OSM)のソースデータ(pbf(Google Protocol Buffers)形式)からデータを抽出するために使用します
 +
** (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]
 +
 
 +
==参考情報==
 
* [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]
 +
 +
==練習==
 +
===ポイントのデータのレイヤをつくる===
 +
linux(Ubuntu: windowsの場合もWSLで)
 +
* OSMのpbfデータをローカルに準備(DL)する ( https://download.geofabrik.de/ )
 +
** たとえば日本全体のデータ(2GB程度)をDLする
 +
 +
* ほしい属性の地物をgeoJSONで抽出
 +
** tags-filter: タグをもとにフィルター(抽出), export: geojsonなどに変換
 +
<code><pre>
 +
osmium tags-filter jaAllData/japan-20241126.osm.pbf nwr/amenity=restaurant,cafe,fast_food -o eatplace.pbf
 +
osmium export eatplace.pbf -o eatplace.geojson
 +
</pre></code>
 +
 +
* tags-filter: 地図上はポイント表示にしたいが、ポリゴンで登録されている同じ地物種もあるのでnwrが好ましい模様。
 +
** n: node(点・ポイント)
 +
** w: way(線及び面(始点終点が一致))
 +
** r: relation(接続関係)
 +
 +
* OSMのgeoJSONのpropertiesは正規化とはちょっと言えない状態なので・・・↑のツールの自由な感じのCSV変換webAppにかけてCSV化しよう
 +
 +
* この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で)

  • ほしい属性の地物を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を使って可視化する
個人用ツール
名前空間

変種
操作
案内
ツール
Translate