From a1df0a68940039ce84aceb2eebdcc164433d6b8c Mon Sep 17 00:00:00 2001 From: Chris Arriola Date: Fri, 7 Oct 2022 16:54:27 -0700 Subject: [PATCH] Add sample. Change-Id: I8177feadc27d466f39e5d4e8d04b629afd241b4c --- app/src/main/AndroidManifest.xml | 3 +++ .../maps/android/compose/BasicMapActivity.kt | 8 +++---- .../compose/LocationTrackingActivity.kt | 2 -- .../maps/android/compose/MainActivity.kt | 7 ++++++ .../android/compose/MapClusteringActivity.kt | 2 -- .../android/compose/MapInColumnActivity.kt | 3 --- .../maps/android/compose/ScaleBarActivity.kt | 2 -- .../android/compose/StreetViewActivity.kt | 23 +++++++++++++++++++ app/src/main/res/values/strings.xml | 1 + .../android/compose/streetview/StreetView.kt | 12 +++++++--- 10 files changed, 47 insertions(+), 16 deletions(-) create mode 100644 app/src/main/java/com/google/maps/android/compose/StreetViewActivity.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7532eb52..297eca7a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,6 +55,9 @@ + diff --git a/app/src/main/java/com/google/maps/android/compose/BasicMapActivity.kt b/app/src/main/java/com/google/maps/android/compose/BasicMapActivity.kt index 2e0d02d4..7c032310 100644 --- a/app/src/main/java/com/google/maps/android/compose/BasicMapActivity.kt +++ b/app/src/main/java/com/google/maps/android/compose/BasicMapActivity.kt @@ -61,10 +61,10 @@ import kotlinx.coroutines.launch private const val TAG = "BasicMapActivity" -private val singapore = LatLng(1.35, 103.87) -private val singapore2 = LatLng(1.40, 103.77) -private val singapore3 = LatLng(1.45, 103.77) -private val defaultCameraPosition = CameraPosition.fromLatLngZoom(singapore, 11f) +val singapore = LatLng(1.35, 103.87) +val singapore2 = LatLng(1.40, 103.77) +val singapore3 = LatLng(1.45, 103.77) +val defaultCameraPosition = CameraPosition.fromLatLngZoom(singapore, 11f) class BasicMapActivity : ComponentActivity() { diff --git a/app/src/main/java/com/google/maps/android/compose/LocationTrackingActivity.kt b/app/src/main/java/com/google/maps/android/compose/LocationTrackingActivity.kt index 2967f563..86462124 100644 --- a/app/src/main/java/com/google/maps/android/compose/LocationTrackingActivity.kt +++ b/app/src/main/java/com/google/maps/android/compose/LocationTrackingActivity.kt @@ -30,8 +30,6 @@ import kotlin.random.Random private const val TAG = "LocationTrackActivity" private const val zoom = 8f -private val singapore = LatLng(1.35, 103.87) -private val defaultCameraPosition = CameraPosition.fromLatLngZoom(singapore, zoom) /** * This shows how to use a custom location source to show a blue dot on the map based on your own diff --git a/app/src/main/java/com/google/maps/android/compose/MainActivity.kt b/app/src/main/java/com/google/maps/android/compose/MainActivity.kt index 301ed2c4..b452868a 100644 --- a/app/src/main/java/com/google/maps/android/compose/MainActivity.kt +++ b/app/src/main/java/com/google/maps/android/compose/MainActivity.kt @@ -105,6 +105,13 @@ class MainActivity : ComponentActivity() { }) { Text(getString(R.string.scale_bar_activity)) } + Spacer(modifier = Modifier.padding(5.dp)) + Button( + onClick = { + context.startActivity(Intent(context, StreetViewActivity::class.java)) + }) { + Text(getString(R.string.street_view)) + } } } } diff --git a/app/src/main/java/com/google/maps/android/compose/MapClusteringActivity.kt b/app/src/main/java/com/google/maps/android/compose/MapClusteringActivity.kt index 234f7e6d..912187b5 100644 --- a/app/src/main/java/com/google/maps/android/compose/MapClusteringActivity.kt +++ b/app/src/main/java/com/google/maps/android/compose/MapClusteringActivity.kt @@ -21,8 +21,6 @@ import com.google.maps.android.clustering.ClusterItem import com.google.maps.android.clustering.ClusterManager import kotlin.random.Random -private val singapore = LatLng(1.35, 103.87) -private val singapore2 = LatLng(2.50, 103.87) private val TAG = MapClusteringActivity::class.simpleName class MapClusteringActivity : ComponentActivity() { diff --git a/app/src/main/java/com/google/maps/android/compose/MapInColumnActivity.kt b/app/src/main/java/com/google/maps/android/compose/MapInColumnActivity.kt index 6c42b790..087a42b9 100644 --- a/app/src/main/java/com/google/maps/android/compose/MapInColumnActivity.kt +++ b/app/src/main/java/com/google/maps/android/compose/MapInColumnActivity.kt @@ -43,9 +43,6 @@ import com.google.android.gms.maps.model.Marker private const val TAG = "ScrollingMapActivity" -private val singapore = LatLng(1.35, 103.87) -private val defaultCameraPosition = CameraPosition.fromLatLngZoom(singapore, 11f) - class MapInColumnActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { diff --git a/app/src/main/java/com/google/maps/android/compose/ScaleBarActivity.kt b/app/src/main/java/com/google/maps/android/compose/ScaleBarActivity.kt index 5595ca2f..297587e7 100644 --- a/app/src/main/java/com/google/maps/android/compose/ScaleBarActivity.kt +++ b/app/src/main/java/com/google/maps/android/compose/ScaleBarActivity.kt @@ -42,8 +42,6 @@ import com.google.maps.android.compose.widgets.ScaleBar private const val TAG = "ScaleBarActivity" private const val zoom = 8f -private val singapore = LatLng(1.35, 103.87) -private val defaultCameraPosition = CameraPosition.fromLatLngZoom(singapore, zoom) class ScaleBarActivity : ComponentActivity() { diff --git a/app/src/main/java/com/google/maps/android/compose/StreetViewActivity.kt b/app/src/main/java/com/google/maps/android/compose/StreetViewActivity.kt new file mode 100644 index 00000000..d7079c37 --- /dev/null +++ b/app/src/main/java/com/google/maps/android/compose/StreetViewActivity.kt @@ -0,0 +1,23 @@ +package com.google.maps.android.compose + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.ui.Modifier +import com.google.android.gms.maps.StreetViewPanoramaOptions +import com.google.maps.android.compose.streetview.StreetView + +class StreetViewActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + Box(Modifier.fillMaxSize()) { + StreetView(Modifier.matchParentSize(), streetViewPanoramaOptionsFactory = { + StreetViewPanoramaOptions().position(singapore) + }) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 51a91f28..5e7a0bc2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -22,4 +22,5 @@ Map Clustering Location Tracking Scale Bar + Street View \ No newline at end of file diff --git a/maps-compose/src/main/java/com/google/maps/android/compose/streetview/StreetView.kt b/maps-compose/src/main/java/com/google/maps/android/compose/streetview/StreetView.kt index 1afa5cc5..31ef64dd 100644 --- a/maps-compose/src/main/java/com/google/maps/android/compose/streetview/StreetView.kt +++ b/maps-compose/src/main/java/com/google/maps/android/compose/streetview/StreetView.kt @@ -21,6 +21,7 @@ import androidx.compose.ui.viewinterop.AndroidView import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import com.google.android.gms.maps.MapView +import com.google.android.gms.maps.StreetViewPanoramaOptions import com.google.android.gms.maps.StreetViewPanoramaView import com.google.android.gms.maps.model.StreetViewPanoramaOrientation import com.google.maps.android.compose.MapApplier @@ -32,16 +33,21 @@ import kotlinx.coroutines.NonDisposableHandle.parent @Composable public fun StreetView( modifier: Modifier = Modifier, + streetViewPanoramaOptionsFactory: () -> StreetViewPanoramaOptions = { + StreetViewPanoramaOptions() + }, // TODO check that these defaults are correct isPanningGesturesEnabled: Boolean = false, isStreetNamesEnabled: Boolean = false, isUserNavigationEnabled: Boolean = false, isZoomGesturesEnabled: Boolean = true, + // END TODO onClick: (StreetViewPanoramaOrientation) -> Unit = {}, onLongClick: (StreetViewPanoramaOrientation) -> Unit = {}, ) { val context = LocalContext.current - val streetView = remember { StreetViewPanoramaView(context) } + val streetView = + remember { StreetViewPanoramaView(context, streetViewPanoramaOptionsFactory()) } AndroidView(modifier = modifier, factory = { streetView }) {} StreetViewLifecycle(streetView) @@ -70,8 +76,8 @@ public fun StreetView( // streetViewPanorama.isStreetNamesEnabled = isStreetNamesEnabled // streetViewPanorama.isUserNavigationEnabled = isUserNavigationEnabled // streetViewPanorama.isZoomGesturesEnabled = isZoomGesturesEnabled -// //streetViewPanorama.setPosition -// //streetViewPanorama.location = StreetViewPanoramaLocation() +// streetViewPanorama.setPosition +// streetViewPanorama.location = StreetViewPanoramaLocation() // } }