Ist es möglich, die Zoomstufe für myLocation mit dem neuen Google Maps-API v2 zu ändern?. Sie erhalten eine Schaltfläche auf der Karte, um Ihren Standort zu finden. Wenn Sie darauf klicken, bringt Sie die Karte zu Ihrem Standort und vergrößert sie auf eine bestimmte Ebene. Kann ich diesen Zoom auf weniger oder mehr ändern?
Es ist zweifelhaft, dass Sie den Klick mit dem Standard-myLocation-Marker ändern können. Wenn Sie möchten, dass die App Ihren Standort automatisch vergrößert, sobald sie gefunden wurde, würde ich meine Antwort auf diese Frage prüfen.
Beachten Sie, dass die von mir angegebene Antwort nicht vergrößert wird. Wenn Sie jedoch die onLocationChanged-Methode so ändern, dass sie der folgenden entspricht, können Sie die gewünschte Zoomstufe auswählen:
@Override
public void onLocationChanged(Location location)
{
if( mListener != null )
{
mListener.onLocationChanged( location );
//Move the camera to the user's location and zoom in!
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 12.0f));
}
}
Sie können auch verwenden:
mMap.animateCamera( CameraUpdateFactory.zoomTo( 17.0f ) );
Um den Zoomwert einfach auf einen beliebigen Wert zwischen Minimalwert = 2,0 und Maximalwert = 21,0 zu ändern.
Die API warnt, dass nicht an allen Standorten Kacheln mit Werten bei oder nahe dem maximalen Zoom vorhanden sind.
Unter this finden Sie weitere Informationen zu den in der CameraUpdateFactory
verfügbaren Zoom-Methoden.
mit Standort - im neuen GoogleMaps SDK:
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(chLocation,14));
Etwas andere Lösung als bei HeatfanJohn, wo ich den Zoom relativ zur aktuellen Zoomstufe verändere:
// Zoom out just a little
map.animateCamera(CameraUpdateFactory.zoomTo(map.getCameraPosition().zoom - 0.5f));
In der onMapReady () - Methode
Ändern Sie den ZoomLevel auf einen beliebigen Wert.
float zoomLevel = (float) 18.0;
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, zoomLevel));
Hier sind die ungefähren Zoomstufen und was sie tun:
1: World
5: Landmass/continent
10: City
15: Streets
20: Buildings
so können Sie beispielsweise auf die Straßenebene zoomen (beachten Sie, dass die "15f" unten die Straßenebene ist):
override fun onMapReady(googleMap: GoogleMap?) {
googleMap?.mapType = GoogleMap.MAP_TYPE_NORMAL
googleMap?.addMarker(MarkerOptions()
.position(LatLng(37.4233438, -122.0728817))
.title("cool place")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ROSE)))
googleMap?.animateCamera(CameraUpdateFactory.newLatLngZoom(LatLng(37.4233438, -122.0728817), 15f))
sie müssen nur eine Zeile in maps_activity.xml schreiben
map:cameraZoom="13"
Ich hoffe das löst dein Problem ...
Sogar ich hatte vor kurzem die gleiche Abfrage .... einige, wie keiner der oben genannten setmaxzoom oder anderweitigen Karte: cameraZoom = "13" hat nicht funktioniert Stellen Sie sicher, dass Ihre Abhängigkeit für Google Maps korrekt ist. Dies ist die neueste Verwendung
compile 'com.google.Android.gms:play-services:11.8.0'
Location locaton;
double latitude = location.getlatitude;
double longitude = location.getlongitude;
Wenn Sie den Zoom speichern oder ständig abrufen möchten, müssen Sie nur Folgendes aufrufen
int zoom = mMap.getCameraPosition().zoom;
//To set that just use
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(getlatitude(), getlongitude),zoom);
Sie können verwenden
CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(location.getLatitude(), location.getLongitude()));
CameraUpdate zoom = CameraUpdateFactory.zoomTo(12);