From 25625301921ed2859c99ecfa9ca3adf47ada10de Mon Sep 17 00:00:00 2001 From: Dale Hawkins <107309+dkhawk@users.noreply.github.com> Date: Thu, 20 Aug 2026 17:12:26 -0600 Subject: [PATCH 1/9] Enhance Advanced Camera Animation and Path Following samples - Advanced Camera Animation: - Add modular step animation pipeline (FlyToStep, OrbitStep, DwellStep, FlyAroundStep, KeyframeStep). - Add high-altitude San Francisco starting camera view. - Implement full reset and continuous orbit support. - Sync Java, Kotlin, and Jetpack Compose implementations. - Path Following: - Implement two-polyline progress tracking with wide blue base route (lower z-index) and narrow purple progress route (higher z-index). - Use in-place fixed polyline IDs to eliminate rendering flickering. - Default altitude mode to 'Clamp to Ground' with support for Relative to Ground, Relative to Mesh, and Absolute. - Add dynamic path height slider to avoid z-fighting with terrain. - Add collapsible control panel with explicit collapse/expand button, auto-slide dismissal, and subtle idle opacity. - Extract all hardcoded strings into strings.xml resources. - Align Java and Kotlin implementations. --- .gitignore | 2 + .../main/res/drawable/expand_less_24px.xml | 9 + .../main/res/drawable/expand_more_24px.xml | 9 + .../res/layout/activity_path_following.xml | 136 +++- .../control_panel_advanced_animation.xml | 50 +- .../common/src/main/res/values/strings.xml | 65 ++ .../AdvancedCameraAnimationActivity.java | 649 +++++------------- .../AnimationStep.java | 62 ++ .../advancedcameraanimation/DwellStep.java | 75 ++ .../FlyAroundStep.java | 72 ++ .../advancedcameraanimation/FlyToStep.java | 81 +++ .../advancedcameraanimation/KeyframeStep.java | 51 ++ .../Map3DAnimator.java | 267 +++++++ .../advancedcameraanimation/OrbitOptions.java | 138 ++++ .../advancedcameraanimation/OrbitStep.java | 134 ++++ .../advancedcameraanimation/StepCallback.java | 29 + .../pathfollowing/PathFollowingActivity.java | 272 +++++++- .../AdvancedCameraAnimationActivity.kt | 32 +- .../pathfollowing/PathFollowingActivity.kt | 333 ++++++--- .../AdvancedCameraAnimationActivity.kt | 29 +- gradle/gradle-daemon-jvm.properties | 12 + 21 files changed, 1876 insertions(+), 631 deletions(-) create mode 100644 Maps3DSamples/ApiDemos/common/src/main/res/drawable/expand_less_24px.xml create mode 100644 Maps3DSamples/ApiDemos/common/src/main/res/drawable/expand_more_24px.xml create mode 100644 Maps3DSamples/ApiDemos/java-app/src/main/java/com/example/maps3djava/advancedcameraanimation/AnimationStep.java create mode 100644 Maps3DSamples/ApiDemos/java-app/src/main/java/com/example/maps3djava/advancedcameraanimation/DwellStep.java create mode 100644 Maps3DSamples/ApiDemos/java-app/src/main/java/com/example/maps3djava/advancedcameraanimation/FlyAroundStep.java create mode 100644 Maps3DSamples/ApiDemos/java-app/src/main/java/com/example/maps3djava/advancedcameraanimation/FlyToStep.java create mode 100644 Maps3DSamples/ApiDemos/java-app/src/main/java/com/example/maps3djava/advancedcameraanimation/KeyframeStep.java create mode 100644 Maps3DSamples/ApiDemos/java-app/src/main/java/com/example/maps3djava/advancedcameraanimation/Map3DAnimator.java create mode 100644 Maps3DSamples/ApiDemos/java-app/src/main/java/com/example/maps3djava/advancedcameraanimation/OrbitOptions.java create mode 100644 Maps3DSamples/ApiDemos/java-app/src/main/java/com/example/maps3djava/advancedcameraanimation/OrbitStep.java create mode 100644 Maps3DSamples/ApiDemos/java-app/src/main/java/com/example/maps3djava/advancedcameraanimation/StepCallback.java create mode 100644 gradle/gradle-daemon-jvm.properties diff --git a/.gitignore b/.gitignore index c32cfa86..f225e479 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,5 @@ google-services.json .vscode/ snippets/docs/ .kotlin/ +.android/ +scratch/ diff --git a/Maps3DSamples/ApiDemos/common/src/main/res/drawable/expand_less_24px.xml b/Maps3DSamples/ApiDemos/common/src/main/res/drawable/expand_less_24px.xml new file mode 100644 index 00000000..df9af507 --- /dev/null +++ b/Maps3DSamples/ApiDemos/common/src/main/res/drawable/expand_less_24px.xml @@ -0,0 +1,9 @@ + + + diff --git a/Maps3DSamples/ApiDemos/common/src/main/res/drawable/expand_more_24px.xml b/Maps3DSamples/ApiDemos/common/src/main/res/drawable/expand_more_24px.xml new file mode 100644 index 00000000..391e875f --- /dev/null +++ b/Maps3DSamples/ApiDemos/common/src/main/res/drawable/expand_more_24px.xml @@ -0,0 +1,9 @@ + + + diff --git a/Maps3DSamples/ApiDemos/common/src/main/res/layout/activity_path_following.xml b/Maps3DSamples/ApiDemos/common/src/main/res/layout/activity_path_following.xml index 2d9a0c2d..3d5da955 100644 --- a/Maps3DSamples/ApiDemos/common/src/main/res/layout/activity_path_following.xml +++ b/Maps3DSamples/ApiDemos/common/src/main/res/layout/activity_path_following.xml @@ -41,25 +41,67 @@ app:cardElevation="8dp" > - + + + + + + + + + + @@ -77,7 +119,7 @@ android:layout_height="wrap_content" android:layout_weight="1" android:checked="true" - android:text="Urban" + android:text="@string/urban" /> + + + + + + + + + + + + + + + + + + + + diff --git a/Maps3DSamples/ApiDemos/common/src/main/res/layout/control_panel_advanced_animation.xml b/Maps3DSamples/ApiDemos/common/src/main/res/layout/control_panel_advanced_animation.xml index d0a40acc..c66d9171 100644 --- a/Maps3DSamples/ApiDemos/common/src/main/res/layout/control_panel_advanced_animation.xml +++ b/Maps3DSamples/ApiDemos/common/src/main/res/layout/control_panel_advanced_animation.xml @@ -36,57 +36,29 @@ > - - - - - - - - - - + android:text="@string/aerial_tour_status_idle" + android:textColor="?android:attr/textColorSecondary" + />