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

モバイルで地理空間情報

なかしょ
May 17, 2024
170

 モバイルで地理空間情報

2024/05/17(金)に開催された YUMEMI.grow Mobile #13( https://yumemi.connpass.com/event/317381/) でLTで発表した資料です。
#yumemi_grow

なかしょ

May 17, 2024
Tweet

Transcript

  1. 自己紹介 • なかしょ(中島進也) @nakasho_dev • 所属:NTTテクノクロス株式会社 デジタルトランスフォーメーション事業部 • 業務:MaaS関連のスマートフォンアプリ開発担当 •

    趣味: ➢妻とモンハンデート ➢IT関連の勉強会(主にモバイル系 or アジャイル系) ➢技術コミュニティの運営スタッフ ✓eXtreme Programming Japan User Group(XPJUG) 2019〜 ✓TDD BootCamp Online (TDDBC) 2020~ ※本資料は私個人の意見であり、所属企業・部門見解を代表するものではありません。
  2. 色々な地理空間情報サービス 地図サービス Android iOS Web 備考 GoogleMaps 〇 〇 〇

    https://developers.google.com/maps?hl=ja MapKit × 〇 〇 https://developer.apple.com/documentation/mapkit/ Bing Maps 〇 〇 〇 https://www.microsoft.com/en-us/maps/bing-maps/choose-your-bing-maps-api Azure Maps 〇 〇 〇 https://azure.microsoft.com/ja-jp/products/azure-maps いつもNavi 〇 〇 〇 https://www.zenrin-datacom.net/solution/api ArcGIS 〇 〇 〇 https://www.esrij.com/products/arcgis-developers/apis-and-sdks/ Here 〇 〇 〇 https://www.here.com/jp MapBox 〇 〇 〇 https://www.mapbox.com/ Mapped In 〇 〇 〇 https://developer.mappedin.com/ maptiler 〇 〇 〇 https://www.maptiler.com/jp/ Mappls 〇 〇 〇 https://about.mappls.com/api/maps/ TomTom 〇 〇 〇 https://developer.tomtom.com/ Mapple 〇 × × https://mapple.com/products/system-sdk/
  3. データ管理 空間演算 タイムゾーン Creator 天気 画像 ルート指定 位置情報 検索 交通情報

    マップ Azure Mapsのサービス 6 URL: https://azure.microsoft.com/ja-jp/products/azure-maps
  4. MapLibreのプロダクト 11 • MapLibre GL JS ➢TypeScriptライブラリ • MapLibre Native

    ➢OpenGLとMetalをサポート ➢Android, iOS, GLFW, Linux, Node.js, Qt, Windows, macOS • MapLibre RS ➢WebGPU, Rust, WebAssembly, まだ不安定 • MapLibre Style Specification ➢MapLibreで使用するStyleを定義するJSON仕様 • Martin ➢大規模なPostGISデータベースからVectorTileを生成するサーバ https://maplibre.org/
  5. 14 GeoJSON 地理空間情報を扱うJSONフォーマット • Feature ➢Geometry ✓Point, LineString, Polygon, MultiPoint,

    MultiLineString, MultiPolygon ➢Properties ✓属性情報をKey-Valueで持つ ✓GeoJSONに対応したSDKによっては特定のKeyを自動で解釈できる
  6. 15 https://www.geospatial.jp/ckan/dataset/ksj-p29-13 { "type": "Feature", "properties": { "行政区域コード": "13112", "公共施設大分類":

    "16", "公共施設小分類": "16001", "学校分類": "16001", "名称": "太子堂小学校", "所在地": "太子堂5-7-4", "管理者コード": 3.0 }, "geometry": { "type": "Point", "coordinates": [ 139.666776, 35.646405 ] } } G空間情報センターで無料で配布 されている国土数値情報(学 校)ー東京都を使用。
  7. 16 val data = FeatureCollection.fromJson(geoJson) data.features()?.forEach { feature -> //緯度経度を取得

    val geometry = feature.geometry()?.toJson() ?: return@forEach val point = Point.fromJson(geometry) ?: return@forEach val latLng = LatLng(point.latitude(), point.longitude()) bounds.add(latLng) //属性情報を取得 val title = feature.getStringProperty("名称") val place = feature.getStringProperty("所在地") val icon = IconFactory.getInstance(this) .fromBitmap(bitmapBlue) // Markerを追加 val markerOptions = MarkerOptions() .position(latLng) .title(place) .snippet(title) .icon(icon) maplibreMap.addMarker(markerOptions) }