Slide 1

Slide 1 text

Next-gen Android experiences with photorealistic 3D maps Google I/O 2025 報告LT kintone開発 チーム 藤田 真輔

Slide 2

Slide 2 text

概要 ▌このLTは、Google I/O2025の「Next-gen Android experiences with photorealistic 3D maps」のまとめLTです。 2 テ キ ス ト AI 生 成 コ ン テ ン ツ は 誤 り を 含 む 可 能 性 が あ り ま す 。

Slide 3

Slide 3 text

3 目次 1. Maps 3D SDK for Androidとは? 2. 事前準備 3. 実装 4. デモ 5. 最後に

Slide 4

Slide 4 text

4 1. Maps 3D SDK for Androidとは? GoogleI/O 2024では「Maps JavaScript API」で3Dマップをリリースして いた 今年はGoogle Maps Platformを通して、Android開発者向けに3Dマッ プを提供します、それが「Maps 3D SDK for Android」ということです ただし、前提として「pre-GA(一般提供前)の試験運用版」だそうです https://developers.google.com/maps/launch-stages?hl=ja

Slide 5

Slide 5 text

5 2. 事前準備 1. Google Cloud プロジェクトと API キーを設定 a. Google Cloud プロジェクトの作成 b. Google Maps PlatformのAPIとSDKの有効化 c. APIキーの取得 https://developers.google.com/maps/documentation/maps-3d/android- sdk/setup?hl=ja#set_up_a_google_cloud_project_and_api_key 2. Android Studio プロジェクトのセットアップ https://developers.google.com/maps/documentation/maps-3d/android- sdk/setup?hl=ja#set_up_an_android_studio_project

Slide 6

Slide 6 text

6 3. 実装(地図のエクスペリエンス) 1. カメラの設定の構成 ユーザーはジェスチャーを通して、カメラのズーム、傾斜、位置、回転を制御可能 https://developers.google.com/maps/docu mentation/maps-3d/android- sdk/configure-camera-controls

Slide 7

Slide 7 text

7 3. 実装(地図のエクスペリエンス) 2. カメラパス アニメーション ジャンプや飛び回るアニメーションを与えることにより、ユーザーに没入感のあるエクスペリエ ンスを提供可能 後ほどデモします https://developers.google.com/maps/documentation/maps- 3d/android-sdk/custom-camera-paths

Slide 8

Slide 8 text

8 3. 実装(地図のエクスペリエンス) 3. 地図とカメラの制限の構成 カメラに設定する値について、地理的境界とカメラの高度、見出し、傾きの値を制限する カメラの制限CameraRestrictionを使いmaxAltitude、minAltitude、 maxHeading、minHeading、maxTilt、minTiltすべてを設定する必要がある カメラの境界はlatLngBoundsを使ってCameraRestrictionのboundsに設定するが 任意 https://developers.google.com/maps/documentation/maps- 3d/android-sdk/map-camera-restrictions

Slide 9

Slide 9 text

9 3. 実装(マーカー) 1. マーカーの追加 GoogleMap3D#addMarker(MarkerOptions)を使って追加する https://developers.google.com/map s/documentation/maps-3d/android- sdk/add-a-marker

Slide 10

Slide 10 text

10 3. 実装(マーカー) 2. マーカーの表示高度の構成 マーカーの高度はaltitudeMode プロパティを次のいずれかの値に設定することで設定 ABSOLUTE:地球の海抜(海面)を基準にした絶対的な高度 RELATIVE_TO_GROUND:地表(その地点の地形の高さ)からの相対高度 CLAMP_TO_GROUND:地形(地面)にくっつける(地表に貼り付ける) RELATIVE_TO_MESH:表示中の地形メッシュに対する高度 https://developers.google.com/maps/documentation/maps-3d/android-sdk/configure- marker-altitude

Slide 11

Slide 11 text

11 3. 実装(マーカー) 3. マーカーの衝突時動作の設定 マーカーの衝突時動作はcollisionBehavior プロパティを次のいずれかの値に設定する ことで指定可能 REQUIRED:他のマーカーと重なっていても常に表示 REQUIRED_AND_HIDES_OPTIONAL : 他 の マ ー カ ー と 重 な っ て い て も 常 に 表 示 。 OPTIONAL_AND_HIDES_LOWER_PRIORITY の衝突動作が設定されたマーカー、またはこのマーカーと重なるデ フォルトの地図ラベルは非表示 OPTIONAL_AND_HIDES_LOWER_PRIORITY:他のマーカーと重ならない場合にのみ表示される。このタ イプのマーカー同士が重なった場合、描画順序の高いほうが表示されます。描画順序も同一の場合、画面内の縦位置 が低いほうが表示されます。 https://developers.google.com/maps/documentation/maps-3d/android-sdk/configure- marker-collision-behavior

Slide 12

Slide 12 text

12 3. 実装(地図上で図形描画) 1. ポリゴンの追加 addPolygonメソッドを呼び出して 3D ポリゴンを追加 https://developers.google.com/map s/documentation/maps-3d/android- sdk/add-polygons

Slide 13

Slide 13 text

13 3. 実装(地図上で図形描画) 2. ポリラインの追加 addPolyline メソッドを呼び出して、ポリラインを追加 https://developers.google.com/map s/documentation/maps-3d/android- sdk/add-polylines

Slide 14

Slide 14 text

14 3. 実装(地図上で図形描画) 3. 3Dモデルの追加 addModel メソッドを呼び出して 3D モデルを追加 https://developers.google.com/map s/documentation/maps-3d/android- sdk/add-3d-models

Slide 15

Slide 15 text

15 4. デモ

Slide 16

Slide 16 text

16 5. 最後に - pre-GAなだけあって、まだまだ安定してない印象 - 特にマーカー追加など、ドキュメントでは 「OnMap3DViewReadyCallback#onMap3DViewReady」に書け とあったが、実際はそれではダメで、onMap3DViewReadyで得られる GoogleMap3D#onMapReadyListener()でaddMarker()しないと マーカーが表示されませんでした - 地図のレンダリングも安定せず、かなり遅いことが多い - 元々地図を活用してるアプリでは3DMapだとより具体的な地図になるので体 験が良くな理想です