2012-12-18 2 views
72

Est-il possible de modifier le niveau de zoom pour 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 emplacement. Si vous cliquez dessus, la carte vous amènera à votre position et l'agrandira jusqu'à un certain niveau. Puis-je changer ce zoom pour être moins ou plus?Android Google Maps v2 - Définir le niveau de zoom pour myLocation

+0

Avez-vous une idée de MyLocation bouton zoom niveau? Je veux cette valeur. –

Répondre

136

Il est douteux que vous pouvez le changer en cliquant avec le marqueur myLocation par défaut. Toutefois, si vous souhaitez que l'application fasse un zoom automatique sur votre position une fois qu'elle est trouvée, je vais vérifier ma réponse à this question

Notez que la réponse que j'ai fournie ne fait pas de zoom, mais si vous modifiez la méthode onLocationChanged être comme celui ci-dessous, vous pouvez choisir ce niveau de zoom vous aimez:

@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)); 
    } 
} 
108

vous pouvez également utiliser:

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

pour changer seulement la valeur de zoom à toute valeur désirée entre la valeur minimale = 2,0 et valeur maximale = 21,0. L'API avertit que tous les emplacements ne disposent pas de mosaïques à des valeurs proches du zoom maximal ou proches.

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

+0

Quel est le niveau de zoom par défaut? –

10

solution légèrement différente de celle HeatfanJohn, où je change le zoom par rapport au niveau de zoom:

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

avec emplacement - dans le nouveau GoogleMaps SDK:

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(chLocation,14)); 
+1

Existe-t-il une différence entre newLatLngZoom() et zoom() auquel beaucoup d'autres réponses ont fait référence? Dans l'application, du point de vue de l'utilisateur final, ceux-ci se ressemblent. – portfoliobuilder

0
Location locaton; 
double latitude = location.getlatitude; 
double longitude = location.getlongitude; 

Si vous voulez pour enregistrer le zoom ou d'obtenir tout le temps, il vous suffit d'appeler les éléments suivants

int zoom = mMap.getCameraPosition().zoom; 

//To set that just use 

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(getlatitude(), getlongitude),zoom); 
1

vous devez écrire une seule ligne dans maps_activity.xml

map:cameraZoom="13" 

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

0

Dans onMapReady() Méthode

changer la zoomLevel à tout désiré valeur.

float zoomLevel = (float) 18.0; 
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, zoomLevel)); 
0

Même moi avons récemment eu la même requête .... d'une façon qu'aucun des setmaxzoom mentionné ci-dessus ou d'une carte d'autre: cameraZoom = « 13 » ne fonctionnait pas donc j'ai trouvé que le depenedency que j'ai utilisé était vieux s'il vous plaît assurez-vous que votre dépendance pour google maps est correct c'est le plus récent utilisé cette

compilation « com.google.android.gms: play-services: 11.8.0 »

Questions connexes