2020/05/15 はんなりPython #28 LT資料
坂ノ下 勝幸諸国・浪漫 / OpenStreetMap FoundationFacebook: K.Sakanoshita Twitter: @K_Sakanoshita2020/05/15版
View Slide
OpenStreetMap(OSM)とは みんなで自由な地図(地理情報)を作る活動 2004年から、英国のSteve Coast氏が初めた国際プロジェクト(日本は2008年頃に伝播) 人々が創造的・生産的・革新的に地図を利用することを目的として、プロジェクトを開始 どんな方達が地図を描いているの? 普通の方達。小学生からお年寄りまで様々 地図を描く方達を「マッパー」と呼びます○ 定義は無いので、自分でマッパーと名乗ればOKOpenStreetMapのロゴ画像P.2“OpenStreetMap”で単語(スペース不要)
あまり知らない地図の著作権 地図は著作物。著作権を守って利用する 大抵の地図は自由に出来る利用規約では無い 自分で描くかデザイナーに依頼する必要があるお祭りのご案内日時:*** / 場所:***会場地図お祭りのご案内日時:*** / 場所:***会場地図ここ小学校P.3OSMならCopyrightがあれば自由に活用出来るここ© OpenStreetMap contributorsOpenStreetMapのCopyright表記
自由な地図を活用するって?P.4まち歩きマップランチマップ グッズ制作自由だからアイデア次第で何にでも使えるWikipediaゲームテイクアウトマップ
「自由な活用」ってそれだけ?Google Mapsが無料で使えるならそれでもう、十分じゃないの?P.5
自由な地図が必要な理由 なんでGoogle Mapsを使わないの? 現実的な観点ではとても理にかなった質問です。 ただ突き詰めて考えると、これは現実的な観点の問題ではなく、私たちがどんな社会で生きたいか、という点に集約されます。 - Emacsen 場所の概念は共有財産 一つの主体に渡すことは、あなたとその周囲を形作るちからを渡すことと同じ○ 地図に表示されるものは誰が決めるのか?○ あなたが向かう先は誰が決めるのか? 様々な主体が利用出来る=多様性のある社会○ 決して、一つの主体そのものが悪い訳では無いP.6
今どきのデジタル地図サービスGoogle Mapsなど店舗情報背景地図交通情報利用履歴投稿情報など経路情報P.7背景地図~投稿情報などのデータでサービスを提供するには大規模なビジネスが必要
OpenStreetMapの目指すこと店舗情報背景地図店舗情報背景地図経路情報交通情報投稿情報経路情報大手地図サービス(Googleなど) 企業、団体、コミュニティ、個人会社、コミュニティ、個人が必要な層だけを追加出来る(車いす、アレルギー、保育園、防災、防犯、歴史など…)OpenStreetMapP.8ビジネス~地域活動など様々な活動で自由に地図を使える世界にしたい
バラバラな地理空間情報を集約P.9OpenStreetMapを入れ物として使えばバラバラの地理空間情報を集約出来る 情報が組織毎にバラバラで公開されている
地域を記録して、未来へ伝える 滋賀草津の「立木神社」P.10• 石碑、灯籠、消火器など、普通は描かないものも描ける• データなので検索や集計も出来る• 地図の編集履歴は全て記録される• 100年後に2019年時点の地図も見られる(描いていたら)地域の記憶を地図として残すことが出来る© OpenStreetMap contributors
みんなで地図を描きませんか? 地元のことは、地元の人が詳しい 普通の地図は、祠やお地蔵さんも書かれていない、正確だけど味のない地図に見えませんか? 味のある地図を描けるのは、地元の人だけ 地元も、店や家が少しずつ変わっていきます 観光名所ならともかく、地元のささやかな変化を国や企業がしっかり記録&公開してくれますか?地元の変化を地図に記録していくことで「未来の古地図」という“宝物”になります歴史や文化も記録されないと伝わらないよねP.11
PythonでOpenStreetMapP.12
Python入門本を買いましたP.13
OpenStreetMapを使ってみる Python初心者がOpenStreetMapをPythonから使えないか調べてみた! folium (地図を表示するhtmlを作成)https://github.com/python-visualization/folium○ 地図タイルの配信サーバーは変更可能○ マーカー、ライン、エリアの表示も可能 overpy (APIでデータ取得)○ ガソリンスタンドの地図→P.14【ガソリンスタンドを取得するクエリー】[out:json][timeout:25];(node["amenity"="fuel"]({{bbox}});way["amenity"="fuel"]({{bbox}});relation["amenity"="fuel"]({{bbox}}););out body;>;out skel qt;