diff --git a/ApiDemos/java/app/src/gms/java/com/example/mapdemo/SplitStreetViewPanoramaAndMapDemoActivity.java b/ApiDemos/java/app/src/gms/java/com/example/mapdemo/SplitStreetViewPanoramaAndMapDemoActivity.java index 327d2ec0..7118ee6a 100755 --- a/ApiDemos/java/app/src/gms/java/com/example/mapdemo/SplitStreetViewPanoramaAndMapDemoActivity.java +++ b/ApiDemos/java/app/src/gms/java/com/example/mapdemo/SplitStreetViewPanoramaAndMapDemoActivity.java @@ -44,9 +44,9 @@ public class SplitStreetViewPanoramaAndMapDemoActivity extends AppCompatActivity // George St, Sydney private static final LatLng SYDNEY = new LatLng(-33.87365, 151.20689); - private StreetViewPanorama mStreetViewPanorama; + private StreetViewPanorama streetViewPanorama; - private Marker mMarker; + private Marker marker; @Override protected void onCreate(final Bundle savedInstanceState) { @@ -67,13 +67,13 @@ public class SplitStreetViewPanoramaAndMapDemoActivity extends AppCompatActivity new OnStreetViewPanoramaReadyCallback() { @Override public void onStreetViewPanoramaReady(StreetViewPanorama panorama) { - mStreetViewPanorama = panorama; - mStreetViewPanorama.setOnStreetViewPanoramaChangeListener( + streetViewPanorama = panorama; + streetViewPanorama.setOnStreetViewPanoramaChangeListener( SplitStreetViewPanoramaAndMapDemoActivity.this); // Only need to set the position once as the streetview fragment will maintain // its state. if (savedInstanceState == null) { - mStreetViewPanorama.setPosition(SYDNEY); + streetViewPanorama.setPosition(SYDNEY); } } }); @@ -85,7 +85,7 @@ public class SplitStreetViewPanoramaAndMapDemoActivity extends AppCompatActivity public void onMapReady(GoogleMap map) { map.setOnMarkerDragListener(SplitStreetViewPanoramaAndMapDemoActivity.this); // Creates a draggable marker. Long press to drag. - mMarker = map.addMarker(new MarkerOptions() + marker = map.addMarker(new MarkerOptions() .position(markerPosition) .icon(BitmapDescriptorFactory.fromResource(R.drawable.pegman)) .draggable(true)); @@ -96,13 +96,13 @@ public class SplitStreetViewPanoramaAndMapDemoActivity extends AppCompatActivity @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); - outState.putParcelable(MARKER_POSITION_KEY, mMarker.getPosition()); + outState.putParcelable(MARKER_POSITION_KEY, marker.getPosition()); } @Override public void onStreetViewPanoramaChange(StreetViewPanoramaLocation location) { if (location != null) { - mMarker.setPosition(location.position); + marker.setPosition(location.position); } } @@ -112,7 +112,7 @@ public class SplitStreetViewPanoramaAndMapDemoActivity extends AppCompatActivity @Override public void onMarkerDragEnd(Marker marker) { - mStreetViewPanorama.setPosition(marker.getPosition(), 150); + streetViewPanorama.setPosition(marker.getPosition(), 150); } @Override diff --git a/ApiDemos/kotlin/app/src/gms/java/com/example/kotlindemos/DemoDetailsList.kt b/ApiDemos/kotlin/app/src/gms/java/com/example/kotlindemos/DemoDetailsList.kt index 0977c99b..4f24d905 100644 --- a/ApiDemos/kotlin/app/src/gms/java/com/example/kotlindemos/DemoDetailsList.kt +++ b/ApiDemos/kotlin/app/src/gms/java/com/example/kotlindemos/DemoDetailsList.kt @@ -45,6 +45,10 @@ class DemoDetailsList { R.string.street_view_panorama_navigation_demo_label, R.string.street_view_panorama_navigation_demo_details, StreetViewPanoramaNavigationDemoActivity::class.java), + DemoDetails( + R.string.split_street_view_panorama_and_map_demo_label, + R.string.split_street_view_panorama_and_map_demo_details, + SplitStreetViewPanoramaAndMapDemoActivity::class.java), DemoDetails(R.string.tags_demo_label, R.string.tags_demo_details, TagsDemoActivity::class.java), DemoDetails(R.string.ui_settings_demo_label, R.string.ui_settings_demo_details, diff --git a/ApiDemos/kotlin/app/src/gms/java/com/example/kotlindemos/SplitStreetViewPanoramaAndMapDemoActivity.kt b/ApiDemos/kotlin/app/src/gms/java/com/example/kotlindemos/SplitStreetViewPanoramaAndMapDemoActivity.kt new file mode 100644 index 00000000..cca60595 --- /dev/null +++ b/ApiDemos/kotlin/app/src/gms/java/com/example/kotlindemos/SplitStreetViewPanoramaAndMapDemoActivity.kt @@ -0,0 +1,88 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +package com.example.kotlindemos + +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import com.google.android.gms.maps.GoogleMap.OnMarkerDragListener +import com.google.android.gms.maps.StreetViewPanorama +import com.google.android.gms.maps.StreetViewPanorama.OnStreetViewPanoramaChangeListener +import com.google.android.gms.maps.SupportMapFragment +import com.google.android.gms.maps.SupportStreetViewPanoramaFragment +import com.google.android.gms.maps.model.* + +/** + * This shows how to create a simple activity with streetview and a map + */ +class SplitStreetViewPanoramaAndMapDemoActivity : AppCompatActivity(), + OnMarkerDragListener, OnStreetViewPanoramaChangeListener { + var streetViewPanorama: StreetViewPanorama? = null + var marker: Marker? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.split_street_view_panorama_and_map_demo) + val markerPosition = savedInstanceState?.getParcelable(MARKER_POSITION_KEY) ?: SYDNEY + + val streetViewPanoramaFragment = + supportFragmentManager.findFragmentById(R.id.streetviewpanorama) as SupportStreetViewPanoramaFragment? + streetViewPanoramaFragment?.getStreetViewPanoramaAsync { panorama -> + streetViewPanorama = panorama + streetViewPanorama?.setOnStreetViewPanoramaChangeListener( + this@SplitStreetViewPanoramaAndMapDemoActivity + ) + // Only need to set the position once as the streetview fragment will maintain + // its state. + savedInstanceState ?: streetViewPanorama?.setPosition(SYDNEY) + } + val mapFragment = + supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment? + mapFragment?.getMapAsync { map -> + map.setOnMarkerDragListener(this@SplitStreetViewPanoramaAndMapDemoActivity) + // Creates a draggable marker. Long press to drag. + marker = map.addMarker( + MarkerOptions() + .position(markerPosition) + .icon(BitmapDescriptorFactory.fromResource(R.drawable.pegman)) + .draggable(true) + ) + } + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + outState.putParcelable( + MARKER_POSITION_KEY, + marker?.position + ) + } + + override fun onStreetViewPanoramaChange(location: StreetViewPanoramaLocation) { + marker?.position = location.position + } + + override fun onMarkerDragStart(marker: Marker) {} + override fun onMarkerDragEnd(marker: Marker) { + streetViewPanorama?.setPosition(marker.position, 150) + } + + override fun onMarkerDrag(marker: Marker) {} + + companion object { + private const val MARKER_POSITION_KEY = "MarkerPosition" + + // George St, Sydney + private val SYDNEY = LatLng(-33.87365, 151.20689) + } +} \ No newline at end of file diff --git a/ApiDemos/kotlin/app/src/gms/res/layout/split_street_view_panorama_and_map_demo.xml b/ApiDemos/kotlin/app/src/gms/res/layout/split_street_view_panorama_and_map_demo.xml new file mode 100644 index 00000000..2a03e73a --- /dev/null +++ b/ApiDemos/kotlin/app/src/gms/res/layout/split_street_view_panorama_and_map_demo.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + diff --git a/ApiDemos/kotlin/app/src/main/AndroidManifest.xml b/ApiDemos/kotlin/app/src/main/AndroidManifest.xml index 869bfbed..22c37e68 100644 --- a/ApiDemos/kotlin/app/src/main/AndroidManifest.xml +++ b/ApiDemos/kotlin/app/src/main/AndroidManifest.xml @@ -57,6 +57,7 @@ + \ No newline at end of file diff --git a/ApiDemos/kotlin/app/src/main/res/drawable-hdpi/pegman.png b/ApiDemos/kotlin/app/src/main/res/drawable-hdpi/pegman.png new file mode 100644 index 00000000..9508e910 Binary files /dev/null and b/ApiDemos/kotlin/app/src/main/res/drawable-hdpi/pegman.png differ diff --git a/ApiDemos/kotlin/app/src/main/res/drawable-mdpi/pegman.png b/ApiDemos/kotlin/app/src/main/res/drawable-mdpi/pegman.png new file mode 100644 index 00000000..bcb7aee4 Binary files /dev/null and b/ApiDemos/kotlin/app/src/main/res/drawable-mdpi/pegman.png differ diff --git a/ApiDemos/kotlin/app/src/main/res/drawable-xhdpi/pegman.png b/ApiDemos/kotlin/app/src/main/res/drawable-xhdpi/pegman.png new file mode 100644 index 00000000..f1c8b5cc Binary files /dev/null and b/ApiDemos/kotlin/app/src/main/res/drawable-xhdpi/pegman.png differ diff --git a/ApiDemos/kotlin/app/src/main/res/drawable-xxhdpi/pegman.png b/ApiDemos/kotlin/app/src/main/res/drawable-xxhdpi/pegman.png new file mode 100644 index 00000000..8ff1e335 Binary files /dev/null and b/ApiDemos/kotlin/app/src/main/res/drawable-xxhdpi/pegman.png differ diff --git a/ApiDemos/kotlin/app/src/main/res/values/strings.xml b/ApiDemos/kotlin/app/src/main/res/values/strings.xml index cc45be76..a27be7d7 100644 --- a/ApiDemos/kotlin/app/src/main/res/values/strings.xml +++ b/ApiDemos/kotlin/app/src/main/res/values/strings.xml @@ -143,6 +143,10 @@ Go to San Francisco Go to Santorini + + Street View Panorama and Map + Demonstrates how to show a Street View panorama and map. + Tags Demonstrates how to get and set tags on API objects.