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?
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));
}
}
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
.
avec emplacement - dans le nouveau SDK GoogleMaps:
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(chLocation,14));
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));
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));
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))
vous devez écrire une seule ligne dans maps_activity.xml
map:cameraZoom="13"
J'espère que cela résoudra votre problème...
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'
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);
Vous pouvez utiliser
CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(location.getLatitude(), location.getLongitude()));
CameraUpdate zoom = CameraUpdateFactory.zoomTo(12);