From 07e65a8c7f4add82fa445a201e97d5e36aff0876 Mon Sep 17 00:00:00 2001 From: Ashik Abbas Date: Mon, 14 Sep 2026 14:42:35 +0530 Subject: [PATCH] feat(upgrade) : upgrade 3d maps sdk to 16.0.0 --- .../samples/views_java/activity_main.xml | 2 +- .../samples/views_kotlin/activity_main.xml | 2 +- .../res/layout/activity_camera_controls.xml | 2 +- .../main/res/layout/activity_common_map.xml | 2 +- .../main/res/layout/activity_hello_map.xml | 2 +- .../res/layout/activity_map_interactions.xml | 2 +- .../MapInteractionsActivity.java | 13 +++-- .../maps3djava/markers/MarkersActivity.java | 56 +++++++++--------- .../MapInteractionsActivity.kt | 9 +-- .../maps3dkotlin/markers/MarkersActivity.kt | 58 ++++++++++--------- Maps3DSamples/ApiDemos/migration_guide.md | 15 +++-- .../MapInteractionsActivity.kt | 11 ++-- .../basicmap/BasicComposeMapActivity.kt | 7 ++- .../com/example/placesuikit3d/MainActivity.kt | 14 +++-- .../src/main/res/layout/activity_main.xml | 2 +- gradle/libs.versions.toml | 2 +- .../MapInteractionsActivity.kt | 5 +- .../maps/android/compose3d/GoogleMap3D.kt | 53 ++++++++++------- .../snippets/java/snippets/PlaceSnippets.java | 8 ++- .../snippets/kotlin/snippets/PlaceSnippets.kt | 5 +- 20 files changed, 152 insertions(+), 118 deletions(-) diff --git a/.gemini/skills/android-maps3d-sdk/assets/samples/views_java/activity_main.xml b/.gemini/skills/android-maps3d-sdk/assets/samples/views_java/activity_main.xml index 53a6692d..f1f25395 100644 --- a/.gemini/skills/android-maps3d-sdk/assets/samples/views_java/activity_main.xml +++ b/.gemini/skills/android-maps3d-sdk/assets/samples/views_java/activity_main.xml @@ -11,7 +11,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" map3d:mapId="your_map_id" - map3d:mode="hybrid" + map3d:mapMode="hybrid" map3d:centerLat="40.748392" map3d:centerLng="-73.986060" map3d:centerAlt="175" diff --git a/.gemini/skills/android-maps3d-sdk/assets/samples/views_kotlin/activity_main.xml b/.gemini/skills/android-maps3d-sdk/assets/samples/views_kotlin/activity_main.xml index 53a6692d..f1f25395 100644 --- a/.gemini/skills/android-maps3d-sdk/assets/samples/views_kotlin/activity_main.xml +++ b/.gemini/skills/android-maps3d-sdk/assets/samples/views_kotlin/activity_main.xml @@ -11,7 +11,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" map3d:mapId="your_map_id" - map3d:mode="hybrid" + map3d:mapMode="hybrid" map3d:centerLat="40.748392" map3d:centerLng="-73.986060" map3d:centerAlt="175" diff --git a/Maps3DSamples/ApiDemos/common/src/main/res/layout/activity_camera_controls.xml b/Maps3DSamples/ApiDemos/common/src/main/res/layout/activity_camera_controls.xml index d1f1c658..8b3ebd45 100644 --- a/Maps3DSamples/ApiDemos/common/src/main/res/layout/activity_camera_controls.xml +++ b/Maps3DSamples/ApiDemos/common/src/main/res/layout/activity_camera_controls.xml @@ -53,7 +53,7 @@ map3d:minAltitude="0" map3d:minHeading="0" map3d:minTilt="0" - map3d:mode="satellite" + map3d:mapMode="satellite" map3d:range="4000" map3d:roll="0" map3d:tilt="67" /> diff --git a/Maps3DSamples/ApiDemos/common/src/main/res/layout/activity_common_map.xml b/Maps3DSamples/ApiDemos/common/src/main/res/layout/activity_common_map.xml index c7452983..175d9f17 100644 --- a/Maps3DSamples/ApiDemos/common/src/main/res/layout/activity_common_map.xml +++ b/Maps3DSamples/ApiDemos/common/src/main/res/layout/activity_common_map.xml @@ -47,7 +47,7 @@ { googleMap3D.setOnMapReadyListener(null); initializeMap(googleMap3D); @@ -94,18 +94,21 @@ private void initializeMap(@NonNull GoogleMap3D googleMap3D) { googleMap3D.setMapMode(Map3DMode.HYBRID); // Listeners for map clicks. - googleMap3D.setMap3DClickListener((location, placeId) -> { + googleMap3D.setMap3DClickListener((event) -> { runOnUiThread(() -> { String message; - if (placeId != null) { - message = "Clicked Place ID: " + placeId; + if (event.getPlaceId() != null) { + message = "Clicked Place ID: " + event.getPlaceId(); } else { - message = "Clicked Location: " + location.getLatitude() + ", " + location.getLongitude(); + message = "Clicked Location: " + event.getLocation().getLatitude() + ", " + + event.getLocation().getLongitude(); } clickedInfoText.setText(message); clickedInfoText.setContentDescription(message); showToast(message); + }); + return true; }); } diff --git a/Maps3DSamples/ApiDemos/java-app/src/main/java/com/example/maps3djava/markers/MarkersActivity.java b/Maps3DSamples/ApiDemos/java-app/src/main/java/com/example/maps3djava/markers/MarkersActivity.java index e8963123..e49f12cb 100644 --- a/Maps3DSamples/ApiDemos/java-app/src/main/java/com/example/maps3djava/markers/MarkersActivity.java +++ b/Maps3DSamples/ApiDemos/java-app/src/main/java/com/example/maps3djava/markers/MarkersActivity.java @@ -14,32 +14,24 @@ package com.example.maps3djava.markers; -import com.google.android.gms.maps3d.model.FlyAroundOptions; -import com.google.android.gms.maps3d.model.PopoverOptions; -import com.google.android.gms.maps3d.Popover; -import org.json.JSONObject; -import org.json.JSONArray; -import android.graphics.Color; -import android.util.Log; -import android.widget.TextView; -import android.widget.PopupMenu; -import java.util.concurrent.CompletableFuture; -import android.os.Looper; -import android.os.Handler; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; -import java.util.Random; import static com.example.maps3d.common.UtilitiesKt.toValidCamera; +import android.graphics.Color; +import android.os.Handler; +import android.os.Looper; +import android.util.Log; import android.view.View; import android.widget.Button; - +import android.widget.PopupMenu; +import android.widget.TextView; import com.example.maps3dcommon.R; import com.example.maps3djava.sampleactivity.SampleBaseActivity; import com.google.android.gms.maps3d.GoogleMap3D; +import com.google.android.gms.maps3d.Popover; import com.google.android.gms.maps3d.model.AltitudeMode; import com.google.android.gms.maps3d.model.Camera; import com.google.android.gms.maps3d.model.CollisionBehavior; +import com.google.android.gms.maps3d.model.FlyAroundOptions; import com.google.android.gms.maps3d.model.FlyToOptions; import com.google.android.gms.maps3d.model.Glyph; import com.google.android.gms.maps3d.model.ImageView; @@ -48,9 +40,13 @@ import com.google.android.gms.maps3d.model.Marker; import com.google.android.gms.maps3d.model.MarkerOptions; import com.google.android.gms.maps3d.model.PinConfiguration; - -import java.util.List; +import com.google.android.gms.maps3d.model.PopoverOptions; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.concurrent.CompletableFuture; /** * Demonstrates the use of different altitude modes for markers in a 3D map. @@ -111,9 +107,9 @@ public final Camera getInitialCamera() { @Override public void onMap3DViewReady(GoogleMap3D googleMap3D) { super.onMap3DViewReady(googleMap3D); - + Log.d(getTAG(), "onMap3DViewReady called"); - + googleMap3D.setOnMapReadyListener((map) -> { Log.w(getTAG(), "on map ready listener fired"); googleMap3D.setOnMapReadyListener(null); @@ -201,13 +197,17 @@ private void initializeMap(GoogleMap3D googleMap3D) { stopButton.setOnClickListener(v -> stopMonsterTour(googleMap3D)); } - googleMap3D.setMap3DClickListener((location, placeId) -> { - runOnUiThread(() -> { - if (activePopover != null) { - activePopover.remove(); - activePopover = null; - } - }); + googleMap3D.setMap3DClickListener((event) -> { + boolean hadActivePopover = activePopover != null; + if (hadActivePopover) { + runOnUiThread(() -> { + if (activePopover != null) { + activePopover.remove(); + activePopover = null; + } + }); + } + return hadActivePopover; }); // Marker 1: Absolute Altitude @@ -594,4 +594,4 @@ private int getMonsterBlurbResId(String monsterId) { return 0; } } -} \ No newline at end of file +} diff --git a/Maps3DSamples/ApiDemos/kotlin-app/src/main/java/com/example/maps3dkotlin/mapinteractions/MapInteractionsActivity.kt b/Maps3DSamples/ApiDemos/kotlin-app/src/main/java/com/example/maps3dkotlin/mapinteractions/MapInteractionsActivity.kt index 8a42f1f9..0eee3827 100644 --- a/Maps3DSamples/ApiDemos/kotlin-app/src/main/java/com/example/maps3dkotlin/mapinteractions/MapInteractionsActivity.kt +++ b/Maps3DSamples/ApiDemos/kotlin-app/src/main/java/com/example/maps3dkotlin/mapinteractions/MapInteractionsActivity.kt @@ -62,17 +62,18 @@ class MapInteractionsActivity : SampleBaseActivity() { // Listeners for map clicks. We use lifecycleScope to ensure coroutines are cancelled when the activity is destroyed. lifecycleScope.launch { - googleMap3D.setMap3DClickListener { location, placeId -> + googleMap3D.setMap3DClickListener { event -> runOnUiThread { - val message = if (placeId != null) { - "Clicked Place ID: $placeId" + val message = if (event.placeId != null) { + "Clicked Place ID: ${event.placeId}" } else { - "Clicked Location: ${location.latitude}, ${location.longitude}" + "Clicked Location: ${event.location.latitude}, ${event.location.longitude}" } clickedInfoText.text = message clickedInfoText.contentDescription = message showToast(message) } + return@setMap3DClickListener true } } } diff --git a/Maps3DSamples/ApiDemos/kotlin-app/src/main/java/com/example/maps3dkotlin/markers/MarkersActivity.kt b/Maps3DSamples/ApiDemos/kotlin-app/src/main/java/com/example/maps3dkotlin/markers/MarkersActivity.kt index 30e1de1d..39f1f8ec 100644 --- a/Maps3DSamples/ApiDemos/kotlin-app/src/main/java/com/example/maps3dkotlin/markers/MarkersActivity.kt +++ b/Maps3DSamples/ApiDemos/kotlin-app/src/main/java/com/example/maps3dkotlin/markers/MarkersActivity.kt @@ -21,29 +21,29 @@ import android.widget.Button import android.widget.Toast import androidx.lifecycle.lifecycleScope import com.example.maps3dcommon.R +import com.example.maps3dkotlin.common.awaitCameraAnimation +import com.example.maps3dkotlin.common.awaitMapSteady +import com.example.maps3dkotlin.markers.data.MonsterParser import com.example.maps3dkotlin.sampleactivity.SampleBaseActivity import com.google.android.gms.maps3d.GoogleMap3D import com.google.android.gms.maps3d.model.AltitudeMode +import com.google.android.gms.maps3d.model.Camera import com.google.android.gms.maps3d.model.CollisionBehavior import com.google.android.gms.maps3d.model.Glyph import com.google.android.gms.maps3d.model.ImageView import com.google.android.gms.maps3d.model.Map3DMode import com.google.android.gms.maps3d.model.Marker -import com.google.android.gms.maps3d.model.Camera import com.google.android.gms.maps3d.model.camera import com.google.android.gms.maps3d.model.flyToOptions import com.google.android.gms.maps3d.model.latLngAltitude import com.google.android.gms.maps3d.model.markerOptions import com.google.android.gms.maps3d.model.pinConfiguration import com.google.android.gms.maps3d.model.popoverOptions +import kotlin.time.Duration.Companion.seconds import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.launch import kotlinx.coroutines.delay import kotlinx.coroutines.isActive -import com.example.maps3dkotlin.common.awaitCameraAnimation -import com.example.maps3dkotlin.common.awaitMapSteady -import com.example.maps3dkotlin.markers.data.MonsterParser -import kotlin.time.Duration.Companion.seconds +import kotlinx.coroutines.launch /** * This activity demonstrates the various altitude modes available for markers on a 3D map. @@ -92,7 +92,7 @@ class MarkersActivity : SampleBaseActivity() { private var monsterMarkers: List = emptyList() private var monsterIds: List = emptyList() private var monsterLabels: List = emptyList() - + private var tourJob: kotlinx.coroutines.Job? = null // The initial camera position is defined declaratively, providing a clear overview of @@ -174,7 +174,7 @@ class MarkersActivity : SampleBaseActivity() { } } } - + findViewById