Upgrade to Pro — share decks privately, control downloads, hide ads and more …

自作アプリに使える「自由な地図」のススメ / Recommendation of "free map" for self-made apps

自作アプリに使える「自由な地図」のススメ / Recommendation of "free map" for self-made apps

2019/07/13 OSC NAGOYAでのセミナー資料
https://www.ospn.jp/osc2019-nagoya/modules/eguide/event.php?eid=19

2019/08/03 OSC KYOTOでのセミナー資料(少しブラッシュアップ)
https://www.ospn.jp/osc2019-kyoto/modules/eguide/event.php?eid=52

K.Sakanoshita

August 03, 2019
Tweet

More Decks by K.Sakanoshita

Other Decks in Programming

Transcript

  1. 自己紹介 - 坂ノ下 勝幸  主な所属コミュニティ・団体  OpenStreetMap Foundation Japan

     諸国・浪漫  オープンデータ京都実践会  主な活動内容  マッピングパーティの開催および協力  ウィキペディアタウンの開催および協力  オープンソース/データの活用(アプリ開発など)  目指していること P.2 / 40 地元の情報は、自分たちで発信する文化を作る 現場こそ最強のツールとデータが使えるように
  2. OpenStreetMapのライセンス  Open Database License(ODbL)  許可されていること(超要約) ◦ 共有:データベースを複製、頒布及び利用可能 ◦

    創作:データベースから著作物を製作可能 ◦ 翻案:データベースへの改変、変形及び加工可能  守るべきルール(超要約) ◦ 表示:帰属表示(Copyright)が必要 ◦ 継承:利用したデータベースはODbLで提供 ◦ キープ・オープン: DRM無し版も提供する P.4 / 40 Creative Commonsは著作物(絵、音、文書)向けライセンス データベースは加工が大前提のため、ライセンスを整備
  3. ODbL説明リンク集  ODbL v1.0(原文・英語)  https://www.opendatacommons.org/licenses/odbl/1.0/  ODbL v1.0(日本語試訳) 

    https://wiki.openstreetmap.org/wiki/OSMFJ/ODbL/1.0/text  ODbL v1.0(日本語試訳サマリー)  https://wiki.openstreetmap.org/wiki/OSMFJ/ODbL/1.0/summary  OpenStreetMapの事例を通じて考える オープンデータのライセンス設定  https://www.jstage.jst.go.jp/article/johokanri/56/3/56_140/_html /-char/ja P.5 / 40 ODbLのデータで作った著作物には、独自ライセンスを 付与することが可能(ODbLはデータベースだけが対象)
  4. OSMは地理空間データベース  データベースは主に以下の要素で構成  ノード:各種施設、案内板、石碑、樹木など  ウェイ:各種道路、線路、川・水路、並木など  エリア:敷地領域、建物、駐車場、森林など 

    上記の要素を組み合わせることで  目的に合った地図を作成する ◦ 各種地図アプリ、ナビゲーションアプリなど  ゲームのデータとして利用する ◦ Pokémon Go/Ingress ◦ ハリー・ポッター:魔法同盟  3Dマップ、マップデータでゲーム内容を変化させる P.8 / 40
  5. 他にも使える地図は?  国土地理院の「基盤地図情報」  申請して許可を得た範囲では無償で使える  数値データは著作権対象外(自由に利用可能)  Google MapsをAPI経由で利用

     Google Mapsから得たデータは他で利用不可  工夫次第で費用を抑えて利用することも可能  OSMと組み合わせてみる  FacebookはOSM利用。地図をクリックすると 地図アプリが起動する(コスト削減) P.10 / 40
  6. OSMの「自由」と「無料」  地図データを配信する「タイルサーバー」  2Dでは256*256pxの画像を配信するサーバー  3Dではベクターデータを配信するサーバー  OSM(openstreetmap.org)が持っている タイルサーバーは「無料」では無い

     OSMデータベースは無料だが、データを配信する サーバーは個人利用程度に抑えておくこと  自前で用意するか、会社のサービスを利用する  [OSM Wiki] JA:タイル利用規約  https://wiki.openstreetmap.org/wiki/JA:%E3%8 2%BF%E3%82%A4%E3%83%AB%E5%88%A9 %E7%94%A8%E8%A6%8F%E7%B4%84 P.11 / 40
  7. OSMの使い方  アプリの背景地図として利用  アクセス数が低い場合(小規模利用) ◦ openstreetmap.org のタイルサーバーを利用  Leaflet.jsなど簡単に使えるライブラリがある

    ◦ MIERUNEやMapboxなどの無料プランを利用  JavaScriptの知識が少しあれば簡単に利用可能  アクセス数が多い場合(大規模利用) ◦ 自前でタイルサーバーを構築する  初心者には難しいがツールはオープンソースである ◦ MIERUNEやMapboxなどの有料プランを利用 ◦ アクセスが多い所の地図画像を作り、タイル サーバーへのアクセス数を減らす  少しセコい感じはするが、ピンポイントで効果有り P.12 / 40
  8. OSMの使い方  地理空間データベースとして利用  全データを先にダウンロードしておく方法 ◦ Planet OSMへアクセスしてダウンロード https://planet.openstreetmap.org/ https://planet.openstreetmap.org/planet/full-history/

    ※上:最新版 / 下:最新版+編集履歴付き ◦ PostgreSQLへ取り込んでアプリで活用 gis=> select count(*) FROM planet_osm_point where ((tags->'man_made') = 'tower'); count ------- 447 P.13 / 40 圧縮ファイルで78GB(履歴付きだと119GB)もある 何でも出来るが、高度な技術力とサーバー構成が必要
  9. OSMの使い方  地理空間データベースとして利用  必要な時にデータを検索して利用する方法 ◦ Overpass APIにクエリーを投げて利用 https://wiki.openstreetmap.org/wiki/JA:Overpass_API ◦

    公式APIサーバーはリクエスト数が制限されるが 他にもサーバーはある(kumi systemsオススメ) https://wiki.openstreetmap.org/wiki/Overpass_API#Pu blic_Overpass_API_instances <Overpassクエリサンプル> [out:json][timeout:25];(node["amenity"="toilets"]({{bbox}});); out body;>;out skel qt; P.14 / 40 HTMLとJavaScriptだけでも、かなり遊ぶ事ができる Overpassで遊べるサイト「overpass turbo」が楽しい
  10. 【紹介】overpass turbo  OverPassコンソールの様なサイト  普通のコンソールは文字中心で黒い画面  地図のコンソールなので地図中心の画面  OverPass

    QL言語でデータ抽出が可能  トイレやレストランのデータだけ抜き出す  施設だけで無く、建物や道路情報も取れる  公式サイト(ここで直接使える)  https://overpass-turbo.eu/  「京都市内トイレ」の検索デモ  https://overpass-turbo.eu/s/KHT P.15 / 40
  11. uMapって?  どんなサービス?  OSM上にアイコンやライン、エリアを描ける  アイコンをクリックしたら画像を表示出来る  Iframeを使って、他サイトの表示も出来る 

    どこがオススメ?  背景地図がOSMなので印刷も自由に出来る  マウス操作で簡単にオンライン地図が作れる  スマホ対応しているので、どこでも見える  Overpass APIでデータ連携することもできる ◦ データ連携時はクエリ言語を勉強する必要あり P.19 / 40