オープンデータからOpenStreetMapへのデータ投入方法と
Overpass API
OpenStreetMap Foundation Japan
OpenStreetMap北陸
宇野泰行
アジェンダ
• オープンデータを提供している自治体
• オープンデータをOSMに投入してみよう
• OSMのAPIを使ってみよう
オープンデータを提供する自治体
オープンデータを提供する自治体
・福井県鯖江市
・福島県会津若松市
・石川県金沢市←new!!
・福井県坂井市(Coming Soon ?)
鯖江市の事例
http://www.city.sabae.fukui.jp/pageview.html?id=11552
・市内トイレ等のトイレ情報・・・OSM投入済
・市内のAED情報
・鯖江市の施設・・・OSM投入済
・市営駐車場情報・・・OSM投入済
・ツツジバスのバス停
・鯖江市文化財
・西山動物園の動物・・・OSM投入済
・鯖江市のオープンな地図データ(Coming Soon!!)
など
OSMに投入できるデータ
できないデータOSMに投入するための条件
1.位置情報と結びつくデータであること
NG例) 鯖江市議会議員の情報
2.とりあえず以下のWikiに載っているような地物だけにしましょう。
http://wiki.openstreetmap.org/wiki/JA:How_to_map_a
NG例) 鯖江市WiFiスポットデータ
OSMには自分で新しいタグを提案する仕組みもありますが
それは一旦置いておきます。
オープンデータを投入してみよう
オープンデータを投入してみよう
今回は金沢市のオープンデータを投入してみます。
http://www4.city.kanazawa.lg.jp/11010/opendata/
1.OSMアカウントの取得
右上の[ユーザ登録]より登録して下さい。
http://www.openstreetmap.org/
2.JOSMのダウンロード
こちらからJOSMをダウンロードしてください。
http://josm.openstreetmap.de/
3. オープンデータのダウンロード
施設情報のCSVをダウンロードしましょう。
駐輪場・駐車場データをダウンロードしてみます。
http://www4.city.kanazawa.lg.jp/11010/opendata/
4. JOSMの接続設定
JOSMを起動し、
ツールバーの[編集]タブの中の[設定]をクリックします。
[接続設定]タブでOSMアカウント及びパスワードを入力し、[OK]クリック。
5. JOSMの設定
ツールバーの[編集]タブの中の[設定]をクリックします。
上級者モードにチェックをつけて下さい。
6. 既存OSMデータのダウンロード
JOSMで金沢市の既存データをダウンロードしましょう。
クリック
6. 既存OSMデータのダウンロード
地図が表示されますので、金沢市の適当なエリアを選択してください。
右クリックしながらドラッグすることで地図の移動、
左クリックしながらドラックすることでエリアの選択、
マウスホイールで地図の拡大・縮小ができます。
あまり大きなエリアを選択するとサーバに拒否されます。
6. 既存OSMデータのダウンロード
選択したら、[ダウンロード]クリック
6. 既存OSMデータのダウンロード
ダウンロードが完了すると、下図のようになります。
右クリックしながらドラッグで移動、ホイールで縮小・拡大ができます。
7. 新規ノードの追加
駐車場データのID=1441の駐車場を追加してみます。
ツールバーの[ツール]-[ノードを追加]をクリック
緯度・経度をCSVデータより
コピーして入力し、[OK]
7. 新規ノードの追加
今追加したノード(点)が選択ウィンドウに表示されているは
ずなので、下図の赤枠のところで右クリックし、
[選択へズーム]
7. 新規ノードの追加
[選択へズーム]すると、先ほど追加したノードが中心になる
ように地図が移動します。
8. ノードに情報を付加
このままではただの“点”なので、ノードに対して情報を付加
していきます。
ツールバーより[プリセット]-[輸送]-[自動車]-[駐車場]
を選択し、
オープンデータのCSVから
入力できそうな項目を埋めます。
わかるところだけで構いません。
8. ノードに情報を付加
ただの“点”から、駐車場のマークになりました。
9. sourceタグの追加
source(情報源)タグを入力しましょう。
今回は金沢市が公開しているデータを利用しているため、
情報源は金沢市となります。
データの帰属
attribution=Copyright Kanazawa City 2013
データソース
source=Kanazawa City 2013
データソース参照URL
source_ref=http://www4.city.kanazawa.lg.jp/11010/opendata/
それでは、これらのタグを先ほどのオブジェクトに付加していきます。
9. sourceタグの追加
追加したオブジェクトを選択した状態で
プロパティウィンドウの[追加]をクリックします。
9. sourceタグの追加
attribution =Copyright Kanazawa City 2013を入力して[OK]
同様にして、
source=Kanazawa City 2013source_ref=http://www4.city.kanazawa.lg.jp/11010/opendata/の2つも追加します。
10. データのアップロード
クリック
10. データのアップロード
コミットコメントを入力して、[変更のアップロード]
10. データのアップロード
アップロードは即時反映されます。
OSMのAPIを使ってみよう
OSMの利用
OpenStreetMapの活用方法は、
大きく次の2つに分類されます。
1.背景地図としての利用
2.位置情報を含む汎用DBとしての利用
背景地図としての利用
OSMにマーカーを付けたり、レイヤーを分けて
他のデータとマッシュアップして表示することができます。
LeafletやOpenLayersを使うと良いでしょう。
Leaflet http://leafletjs.com/
OpenLayers http://openlayers.org/
例えば鯖江市つつじバスの位置情報APIと組み合わせて、
背景地図をOSMにするなど。
汎用DBとしての利用
OSMのデータベースに保存されているデータを、
OSMのAPIを使って取得するという利用方法もあります。
データを更新する必要があれば
API v0.6
データを更新する必要が無ければ
Overpass API
を使いましょう。
Overpass APIを使ってみる
使い方詳細は下記URL参照
http://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide
例えば、福井駅から半径1kmのコンビニデータをJSON形式で取得する
には以下のようにします。
このままブラウザのアドレスバーに貼ってみて下さい。
http://overpass.osm.rambler.ru/cgi/interpreter?data=[out:json];node["name
"="福井(Fukui)"]["railway"="station"];node(around:1000)["shop"="convenien
ce"];out body;
Overpass APIを使ってみる
OSMには電話番号やFAX番号、営業時間、駐車場利用可能台数など
地物の名前以外にも様々なタグが登録されています。
その多くは標準のMapnikではレンダリングされず、裏に隠れています。
APIを使うことで、単に背景地図としての利用から一歩踏み出し、
OSMのデータをフルに使ったWebサービスを作ってみてください。
困ったときは
困ったときは
ハッシュタグ#osmjpを付けて質問すると
きっと誰かが答えてくれます。
ML
OpenStreetMap日本語ML
http://lists.openstreetmap.org/listinfo/talk-ja
Q&A
http://www.osm-japan.org/
困ったときは
Group
OSM関西
http://groups.google.com/group/OSMKansai
OSM東海
http://groups.google.com/group/OSM-Tokai
http://www.facebook.com/groups/OSMTokai
OSM北陸
http://groups.google.com/group/OSM-Hokuriku
http://www.facebook.com/groups/OSMHokuriku
OSM横浜
http://www.facebook.com/groups/397490593609520
ありがとうございました
地図づくりは楽しい。
それが世界的プロジェクトの一員だと思えばもっと楽しい。