Skip to content

Commit d1c3bfc

Browse files
committed
fix(streetview): add instruction banner, center map on Sydney, and sync camera tracking in SplitStreetView demo
1 parent 66a9a6b commit d1c3bfc

4 files changed

Lines changed: 42 additions & 12 deletions

File tree

ApiDemos/project/common-ui/src/main/res/layout/split_street_view_panorama_and_map_demo.xml

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,24 +31,37 @@
3131
app:layout_constraintTop_toTopOf="parent"
3232
app:title="@string/split_street_view_panorama_and_map_demo_label" />
3333

34+
<com.google.android.material.textview.MaterialTextView
35+
android:id="@+id/instructions"
36+
android:layout_width="0dp"
37+
android:layout_height="wrap_content"
38+
android:background="?attr/colorSurfaceVariant"
39+
android:textColor="?attr/colorOnSurfaceVariant"
40+
android:padding="8dp"
41+
android:gravity="center"
42+
android:text="@string/split_street_view_instructions"
43+
app:layout_constraintTop_toBottomOf="@id/topAppBar"
44+
app:layout_constraintStart_toStartOf="parent"
45+
app:layout_constraintEnd_toEndOf="parent" />
46+
3447
<androidx.fragment.app.FragmentContainerView
3548
android:id="@+id/streetviewpanorama"
3649
android:layout_width="0dp"
3750
android:layout_height="0dp"
3851
android:name="com.google.android.gms.maps.SupportStreetViewPanoramaFragment"
39-
app:layout_constraintTop_toBottomOf="@id/topAppBar"
52+
app:layout_constraintTop_toBottomOf="@id/instructions"
53+
app:layout_constraintBottom_toTopOf="@id/map"
4054
app:layout_constraintStart_toStartOf="parent"
41-
app:layout_constraintEnd_toEndOf="parent"
42-
app:layout_constraintHeight_percent="0.5" />
55+
app:layout_constraintEnd_toEndOf="parent" />
4356

4457
<androidx.fragment.app.FragmentContainerView
4558
android:id="@+id/map"
4659
android:layout_width="0dp"
4760
android:layout_height="0dp"
4861
android:name="com.google.android.gms.maps.SupportMapFragment"
4962
app:layout_constraintTop_toBottomOf="@id/streetviewpanorama"
63+
app:layout_constraintBottom_toBottomOf="parent"
5064
app:layout_constraintStart_toStartOf="parent"
51-
app:layout_constraintEnd_toEndOf="parent"
52-
app:layout_constraintHeight_percent="0.5" />
65+
app:layout_constraintEnd_toEndOf="parent" />
5366

5467
</androidx.constraintlayout.widget.ConstraintLayout>

ApiDemos/project/common-ui/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@
208208
<string name="request_position">Position</string>
209209
<string name="split_street_view_panorama_and_map_demo_description">Demonstrates how to show a Street View panorama and map.</string>
210210
<string name="split_street_view_panorama_and_map_demo_label">Street View Panorama and Map</string>
211+
<string name="split_street_view_instructions">Long-press &amp; drag Pegman on the map to jump Street View. Tap arrows in Street View to walk.</string>
211212
<string name="street_view_panorama_basic_demo_description">Standard Street View Panorama using a Fragment.</string>
212213
<string name="street_view_panorama_basic_demo_label">Street View Panorama</string>
213214
<string name="street_view_panorama_events_demo_description">Standard Street View Panorama with event handling.</string>

ApiDemos/project/java-app/src/main/java/com/example/mapdemo/SplitStreetViewPanoramaAndMapDemoActivity.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
package com.example.mapdemo;
1717

18+
import com.google.android.gms.maps.CameraUpdateFactory;
1819
import com.google.android.gms.maps.GoogleMap;
1920
import com.google.android.gms.maps.GoogleMap.OnMarkerDragListener;
2021
import com.google.android.gms.maps.OnMapReadyCallback;
@@ -45,7 +46,7 @@ public class SplitStreetViewPanoramaAndMapDemoActivity extends SamplesBaseActivi
4546
private static final LatLng SYDNEY = new LatLng(-33.87365, 151.20689);
4647

4748
private StreetViewPanorama streetViewPanorama;
48-
49+
private GoogleMap map;
4950
private Marker marker;
5051

5152
@Override
@@ -82,10 +83,12 @@ public void onStreetViewPanoramaReady(StreetViewPanorama panorama) {
8283
(SupportMapFragment) getSupportFragmentManager().findFragmentById(com.example.common_ui.R.id.map);
8384
mapFragment.getMapAsync(new OnMapReadyCallback() {
8485
@Override
85-
public void onMapReady(GoogleMap map) {
86-
map.setOnMarkerDragListener(SplitStreetViewPanoramaAndMapDemoActivity.this);
86+
public void onMapReady(GoogleMap googleMap) {
87+
map = googleMap;
88+
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(markerPosition, 16f));
89+
googleMap.setOnMarkerDragListener(SplitStreetViewPanoramaAndMapDemoActivity.this);
8790
// Creates a draggable marker. Long press to drag.
88-
marker = map.addMarker(new MarkerOptions()
91+
marker = googleMap.addMarker(new MarkerOptions()
8992
.position(markerPosition)
9093
.icon(BitmapDescriptorFactory.fromResource(com.example.common_ui.R.drawable.pegman))
9194
.draggable(true));
@@ -104,6 +107,9 @@ protected void onSaveInstanceState(Bundle outState) {
104107
public void onStreetViewPanoramaChange(StreetViewPanoramaLocation location) {
105108
if (location != null) {
106109
marker.setPosition(location.position);
110+
if (map != null) {
111+
map.animateCamera(CameraUpdateFactory.newLatLng(location.position));
112+
}
107113
}
108114
}
109115

@@ -114,6 +120,9 @@ public void onMarkerDragStart(Marker marker) {
114120
@Override
115121
public void onMarkerDragEnd(Marker marker) {
116122
streetViewPanorama.setPosition(marker.getPosition(), 150);
123+
if (map != null) {
124+
map.animateCamera(CameraUpdateFactory.newLatLng(marker.getPosition()));
125+
}
117126
}
118127

119128
@Override

ApiDemos/project/kotlin-app/src/main/java/com/example/kotlindemos/SplitStreetViewPanoramaAndMapDemoActivity.kt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import android.view.View
1818
import androidx.core.os.BundleCompat
1919
import com.example.common_ui.R
2020

21+
import com.google.android.gms.maps.CameraUpdateFactory
22+
import com.google.android.gms.maps.GoogleMap
2123
import com.google.android.gms.maps.GoogleMap.OnMarkerDragListener
2224
import com.google.android.gms.maps.StreetViewPanorama
2325
import com.google.android.gms.maps.StreetViewPanorama.OnStreetViewPanoramaChangeListener
@@ -31,6 +33,7 @@ import com.google.android.gms.maps.model.*
3133
class SplitStreetViewPanoramaAndMapDemoActivity : SamplesBaseActivity(),
3234
OnMarkerDragListener, OnStreetViewPanoramaChangeListener {
3335
var streetViewPanorama: StreetViewPanorama? = null
36+
var map: GoogleMap? = null
3437
var marker: Marker? = null
3538

3639
override fun onCreate(savedInstanceState: Bundle?) {
@@ -53,10 +56,12 @@ class SplitStreetViewPanoramaAndMapDemoActivity : SamplesBaseActivity(),
5356
}
5457
val mapFragment =
5558
supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment?
56-
mapFragment?.getMapAsync { map ->
57-
map.setOnMarkerDragListener(this@SplitStreetViewPanoramaAndMapDemoActivity)
59+
mapFragment?.getMapAsync { googleMap ->
60+
map = googleMap
61+
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(markerPosition, 16f))
62+
googleMap.setOnMarkerDragListener(this@SplitStreetViewPanoramaAndMapDemoActivity)
5863
// Creates a draggable marker. Long press to drag.
59-
marker = map.addMarker(
64+
marker = googleMap.addMarker(
6065
MarkerOptions()
6166
.position(markerPosition)
6267
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pegman))
@@ -76,11 +81,13 @@ class SplitStreetViewPanoramaAndMapDemoActivity : SamplesBaseActivity(),
7681

7782
override fun onStreetViewPanoramaChange(location: StreetViewPanoramaLocation) {
7883
marker?.position = location.position
84+
map?.animateCamera(CameraUpdateFactory.newLatLng(location.position))
7985
}
8086

8187
override fun onMarkerDragStart(marker: Marker) {}
8288
override fun onMarkerDragEnd(marker: Marker) {
8389
streetViewPanorama?.setPosition(marker.position, 150)
90+
map?.animateCamera(CameraUpdateFactory.newLatLng(marker.position))
8491
}
8592

8693
override fun onMarkerDrag(marker: Marker) {}

0 commit comments

Comments
 (0)