web-dev-qa-db-fra.com

Android Google Maps v2 - définir le niveau de zoom de myLocation

Est-il possible de modifier le niveau de zoom de myLocation avec la nouvelle API Google Maps v2? Si vous définissez GoogleMap.setEnableMyLocation (true); vous obtenez un bouton sur la carte pour trouver votre position. Si vous cliquez dessus, la carte vous amènera à votre position et vous permettra d'effectuer un zoom avant. Puis-je changer ce zoom pour être plus ou moins?

87
dumazy

Il est douteux que vous puissiez le changer au clic avec le marqueur par défaut myLocation. Toutefois, si vous souhaitez que l'application effectue automatiquement un zoom avant sur votre position une fois qu'elle est trouvée, je consulterai ma réponse à cette question

Notez que la réponse que j'ai fournie ne fait pas un zoom avant, mais si vous modifiez la méthode onLocationChanged pour qu'elle ressemble à celle ci-dessous, vous pouvez choisir le niveau de zoom souhaité:

@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

Vous pouvez aussi utiliser:

mMap.animateCamera( CameraUpdateFactory.zoomTo( 17.0f ) );    

Pour changer simplement la valeur de zoom sur n'importe quelle valeur souhaitée entre valeur minimum = 2.0 et valeur maximum = 21.0.

L'API avertit que tous les emplacements ne disposent pas de mosaïques à des valeurs proches du zoom maximum.

Voir this pour plus d’informations sur les méthodes de zoom disponibles dans la CameraUpdateFactory.

125
HeatfanJohn

avec emplacement - dans le nouveau SDK GoogleMaps:

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

Solution légèrement différente de celle de HeatfanJohn, dans laquelle je change le zoom par rapport au niveau de zoom actuel:

// Zoom out just a little
map.animateCamera(CameraUpdateFactory.zoomTo(map.getCameraPosition().zoom - 0.5f));
12
Teo Inke

Dans la méthode onMapReady ()

changer le zoomLevel à n'importe quelle valeur désirée.

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

Voici les niveaux de zoom approximatifs et leur rôle:

1: World
5: Landmass/continent
10: City
15: Streets
20: Buildings

afin que vous puissiez faire quelque chose comme ceci pour zoomer au niveau de la rue par exemple (notez le "15f" ci-dessous est le niveau de la rue):

 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

vous devez écrire une seule ligne dans maps_activity.xml

map:cameraZoom="13"

J'espère que cela résoudra votre problème...

1
Ankit Singh

Même si j'ai récemment eu la même requête .... quelque chose comme aucun des setmaxzoom mentionnés ci-dessus ou bien map: cameraZoom = "13" ne fonctionnait pas. Assurez-vous que votre dépendance pour Google Maps est correcte. C'est la plus récente utilisation de cette

compile 'com.google.Android.gms:play-services:11.8.0' 
0
Siddarth Nyati
Location locaton;
double latitude = location.getlatitude;
double longitude = location.getlongitude;

Si vous souhaitez enregistrer le zoom ou l’obtenir tout le temps, il vous suffit d’appeler le numéro suivant:

int zoom = mMap.getCameraPosition().zoom;

//To set that just use

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(getlatitude(), getlongitude),zoom);
0
Varun Chandran

Vous pouvez utiliser 

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