Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
地図じゃないOpenStreetMap / Not a map OpenStreetMap
K.Sakanoshita
August 29, 2020
Programming
0
150
地図じゃないOpenStreetMap / Not a map OpenStreetMap
2020/08/29 OSC KYOTO/ONLINE
https://event.ospn.jp/osc2020-online-kyoto/session/169727
K.Sakanoshita
August 29, 2020
Tweet
Share
More Decks by K.Sakanoshita
See All by K.Sakanoshita
barsaka2
0
3.6k
barsaka2
0
310
barsaka2
0
94
barsaka2
0
24
barsaka2
0
850
barsaka2
0
120
barsaka2
1
510
barsaka2
0
130
barsaka2
0
49
Other Decks in Programming
See All in Programming
steipete
PRO
2
170
xrdnk
0
130
hassaku63
0
150
pdone
0
210
osyo
1
370
line_developers_tw
0
1.4k
shigeruoda
0
490
hr01
1
1.3k
loleg
0
210
dictoss
0
170
inoue2002
0
280
saki4869
0
190
Featured
See All Featured
garrettdimon
287
110k
imathis
478
150k
marktimemedia
6
340
lemiorhan
627
43k
bermonpainter
342
26k
holman
288
130k
roundedbygravity
241
21k
bryan
100
11k
destraynor
223
47k
jeffersonlam
328
15k
dotmariusz
94
5.1k
sferik
610
54k
Transcript
© OpenStreetMap contributors 地図じゃないOpenStreetMap OpenStreetMap Foundation Japan 坂ノ下 勝幸 Facebook:
K.Sakanoshita Twitter: @K_Sakanoshita
© OpenStreetMap contributors 自己紹介 - 坂ノ下 勝幸 主な所属コミュニティ・団体
諸国・浪漫 OpenStreetMap Foundation Japan Code for OSAKA/Kusatsu/Harima 主な活動内容 オープンデータソンの開催および協力 マッピングパーティの開催および協力 ウィキペディアタウンの開催および協力 オープンソース/データの活用(アプリ開発など) 目指していること 地元の情報は、自分たちで発信する文化を作る 現場こそ最強のツールとデータが使えるように 地元の情報は、自分たちで発信する文化を作る 現場こそ最強のツールとデータが使えるように P.2
© OpenStreetMap contributors OpenStreetMapの超簡単な説明 P.3
© OpenStreetMap contributors OpenStreetMap(OSM)とは みんなで自由な地図(地理情報)を作る活動 2004年から、英国のSteve Coast氏が初めた 国際プロジェクト(日本は2008年頃に伝播)
人々が創造的・生産的・革新的に地図を利用すること を目的として、プロジェクトを開始 どんな方達が地図を描いているの? 普通の方達。小学生からお年寄りまで様々 地図を描く方達を「マッパー」と呼びます ◦ 定義は無いので、自分でマッパーと名乗ればOK OpenStreetMapのロゴ画像 “OpenStreetMap”で単語(スペース不要) P.4
© OpenStreetMap contributors あまり知らない地図の著作権 地図は著作物。著作権を守って利用する 大抵の地図は自由に出来る利用規約では無い 自分で描くかデザイナーに依頼する必要がある
お祭りのご案内 日時:*** / 場所:*** 会場地図 お祭りのご案内 日時:*** / 場所:*** 会場地図 ここ 小学校 OSMはCopyrightを付るだけで自由に使えます ここ OpenStreetMap contributors © OpenStreetMapの Copyright表記 P.5
© OpenStreetMap contributors OpenStreetMapのライセンス Open Database License(ODbL) 許可されていること(超要約)
◦ 共有:データベースを複製、頒布及び利用可能 ◦ 創作:データベースから著作物を製作可能 ◦ 翻案:データベースへの改変、変形及び加工可能 守るべきルール(超要約) ◦ 表示:帰属表示(Copyright)が必要 ◦ 継承:利用したデータベースはODbLで提供 ◦ キープ・オープン: DRM無し版も提供する ※OSMプロジェクトのタイルサーバーが配信する地図画像は CC BY-SA 2.0(もうじき4.0へ引き上げ予定) ODbLのデータで作った著作物には、独自ライセンスを 付与することが可能(ODbLはデータベースだけが対象) P.6
© OpenStreetMap contributors OpenStreetMapは地図じゃない? P.7
© OpenStreetMap contributors 大阪梅田駅周辺(2D) OpenStreetMap contributors © P.8
© OpenStreetMap contributors 大阪梅田駅周辺(3D) F4map F4Map data OpenStreetMap contributors ©
© P.9
© OpenStreetMap contributors 地図はデータ表現の一部に過ぎない https://japanese.engadget.com/microsoft-flight-simulator-melbourne-glitch-citadel-020605033.html P.10
© OpenStreetMap contributors Web APIで任意のデータを取得出来る 例:京都市のトイレ情報を抽出して地図上に表示 JSON形式で取得出来る { "version": 0.6,
"generator": "Overpass API 0.7.56.7 b85c4387", "osm3s": { "timestamp_osm_base": "2020-08-10T15:55:02Z", "copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL." }, "elements": [ { "type": "node", "id": 638938218, "lat": 34.9377934, "lon": 135.6464671, "tags": { "access": "yes", "amenity": "toilets", "male": "yes" } }, { "type": "node", "id": 727603019, "lat": 35.0186126, "lon": 135.6815704, "tags": { "access": "yes", "amenity": "toilets", "fee": "no", "female": "yes", "male": "yes", "name": "JR嵯峨嵐山駅前公衆トイレ", "unisex": "yes", "wheelchair": "yes" } } https://overpass-turbo.eu/ P.11
© OpenStreetMap contributors Web APIでテイクアウトMAPも簡単 店舗リストを OpenStreetMapの APIで抽出&一覧表示 店舗リストを OpenStreetMapの
APIで抽出&一覧表示 APIで取得した OpenStreetMapの 店舗情報を表示 APIで取得した OpenStreetMapの 店舗情報を表示 OpenStreetMap 以外の背景地図でも 特に問題は無い OpenStreetMap 以外の背景地図でも 特に問題は無い P.12
© OpenStreetMap contributors OpenStreetMapのサーバーについて P.13
© OpenStreetMap contributors 一般公開されている主なサーバー • タイルサーバー(地図画像の配信) • OverPass APIサーバー(データーの抽出) {
"type": "node", "id": 638938218, "lat": 34.9377934, "lon": 135.6464671, "tags": { "access": "yes", "amenity": "toilets", "male": "yes" } }, { "type": "node", "id": 727603019, "lat": 35.0186126, "lon": 135.6815704, "tags": { "access": "yes", "amenity": "toilets", "female": "yes", "male": "yes", "name": "JR嵯峨嵐山駅前公衆トイレ", "unisex": "yes", "wheelchair": "yes" } } P.14
© OpenStreetMap contributors 256px X 256px OpenStreetMap Tile Servers https://wiki.openstreetmap.org/wiki/Servers
タイルサーバー(地図画像の配信)と利用地域 日本は台湾にあるサーバーを利用している 256px x 256px 256px x 256px ズームレベル:0 ズームレベル:1 256px x 256px 256px x 256px タイル画像とズーム 15 15 P.15
© OpenStreetMap contributors データは自由。タイルサーバーは違う タイル画像が膨大(ズームレベル18で680億枚) 世界中からアクセスがあるのため高負荷は禁物 https://wiki.openstreetmap.org/wiki/JA:タイル利用規約 個人&小規模はOK。ビジネスなどで大量アクセスするなら MapTilerやMapbox社の商用タイルサーバーを契約しよう P.16
© OpenStreetMap contributors 自分用のサーバーを立てる手もある • Planet OSMで全データをダウンロード可能 https://planet.openstreetmap.org/ P.17 オープンソースでサーバーソフトウェアは公開されている
日本語ドキュメントは少ないが腕に自信がある方はどうぞ
© OpenStreetMap contributors OpenStreetMapをAPIで活用する P.18
© OpenStreetMap contributors 背景地図として使うのも良いんだけど よくあるアプリの「背景地図」 背景地図がOpenStreetMap アイコンを地図上に追加 P.19
© OpenStreetMap contributors Overpass APIを使ってみよう • APIで必要なデータを検索・抽出して利用する – https://wiki.openstreetmap.org/wiki/JA:Overpass_API –
Overpass APIサーバーは公式の他にもいくつかある • Overpassクエリサンプル – [out:json][timeout:25]; (node["amenity"="toilets"] ({{bbox}});); out body;>;out skel qt; – bbox(画面表示)範囲の トイレを抽出するクエリ P.20 HTMLとJavaScriptだけでも、かなり遊ぶ事ができる Overpassで遊べるサイト「overpass turbo」が楽しい https://overpass-turbo.eu/
© OpenStreetMap contributors { "type": "node", ←POI(点)である "id": 727603019, ←OpenStreetMapのユニークID
"lat": 35.0186126, "lon": 135.6815704, ←トイレの緯度経度 "tags": { "access": "yes", ←一般利用が可能 "amenity": "toilets", ←トイレを意味 "female": "yes", ←女性用のトイレあり "male": "yes", ←男性用のトイレあり "name": "JR嵯峨嵐山駅前公衆トイレ", ←トイレの名前 "unisex": "yes", ← ジェンダーニュートラル or すべての人に利用可能 "wheelchair": "yes" ←車椅子に対応 } } Overpass APIの返り値について Web APIにクエリをURLエンコードしてgetすると返答される JSON形式で返すようにパラメータを指定すると以下のような データ抽出結果が表示される(key=value形式) 各種施設の他、道路や建物、池や川の「形状」も抽出が可能 アイデア次第で、様々な情報を抽出、アプリでの利用が可能 P.21
© OpenStreetMap contributors overpass turboのデモ https://overpass-turbo.eu/ みんなでテイクアウトMAPのデモ https://yodogawa3.github.io/takeaway/ まち歩きマップメーカーのデモ https://k-sakanoshita.github.io/mapmaker/
P.22
© OpenStreetMap contributors (バッド?)ノウハウはネットで公開中 • みんなでテイクアウトMAP まち歩きマップメーカー – GitHubにオープンソースで公開中! –
https://github.com/K-Sakanoshita • OpenStreetMap Wiki – Overpass APIの言語ガイドが有り – https://wiki.openstreetmap.org/wiki/ JA:Overpass_API/%E8%A8%80%E8%AA%9E %E3%82%AC%E3%82%A4%E3%83%89 P.23
© OpenStreetMap contributors 最後に伝えたいこと P.24
© OpenStreetMap contributors OpenStreetMapとは • 「単に地図を作る」プロジェクトでは無い • 組織や個人がバラバラに持っているデータを 「オープンデータ化し、OpenStreetMapで 共有しませんか?」の提案活動とも言える
• オープンデータライセンスでも、様々な所に 分散保管されると活用が難しくなる – 例えば自治体が把握しているAED設置場所の情報は 各自治体のサイトにバラバラのフォーマットで保管 されており、全国版を作るのは難しい状況 APIがあってもデータが無いと嘆くより、全世界でデータを 共有できるデータベース(入れ物)と考えると面白いかも?