web-dev-qa-db-de.com

Android Google Maps v2 - Zoomfaktor für myLocation festlegen

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?

87
dumazy

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));
    }
}
172
DiscDev

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.

125
HeatfanJohn

mit Standort - im neuen GoogleMaps SDK:

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(chLocation,14));
17
itzhar

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));
12
Teo Inke

In der onMapReady () - Methode

Ändern Sie den ZoomLevel auf einen beliebigen Wert.

float zoomLevel = (float) 18.0;
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, zoomLevel));
9
Ankit Singh

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))
5
j2emanue

sie müssen nur eine Zeile in maps_activity.xml schreiben

map:cameraZoom="13"

Ich hoffe das löst dein Problem ...

1
Ankit Singh

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' 
0
Siddarth Nyati
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);
0
Varun Chandran

Sie können verwenden 

    CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(location.getLatitude(), location.getLongitude()));
    CameraUpdate zoom = CameraUpdateFactory.zoomTo(12);
0
pavel