Comment obtenir le centre de la carte pour les cartes Android v2?

Dans Google Maps pour Android v1 , MapView avait une méthode pratique: getMapCenter() . Maintenant, je ne peux pas comprendre comment obtenir un centre de carte avec v2 de cette API. J’ai parcouru la documentation de l’API, mais il n’y a aucune mention d’une telle fonctionnalité. S’il vous plaît donnez votre avis.

Merci Igor

J’ai eu le même problème. Il semble que vous puissiez obtenir le centre de cette façon:

 mMap.getCameraPosition().target 

où mMap est l’instance GoogleMap de votre activité. Cela retournera un object LatLng qui représente essentiellement le centre de la carte.

Notez que la classe GeoPoint n’est plus disponible.

Selon http://developer.android.com/reference/com/google/android/gms/maps/model/CameraPosition.html

target est “L’emplacement sur lequel la caméra pointe.” (Je l’ai testé avec le code exemple et ça a fonctionné pour moi)

J’ai trouvé deux façons de le faire:

1) Le plus simple, le premier utilise la propriété target dans l’object CameraPosition de la carte

  LatLng center = mMap.getCameraPosition().target; 

2) Le second utilise un object VisibleRegion:

 VisibleRegion visibleRegion = mMap.getProjection() .getVisibleRegion(); Point x = mMap.getProjection().toScreenLocation( visibleRegion.farRight); Point y = mMap.getProjection().toScreenLocation( visibleRegion.nearLeft); Point centerPoint = new Point(xx / 2, yy / 2); LatLng centerFromPoint = mMap.getProjection().fromScreenLocation( centerPoint); 

J’ai comparé les deux réponses:

 Log.d("MapFragment: ", "Center From camera: Long: " + center.longitude + " Lat" + center.latitude); Log.d("Punto x", "x:" + xx + "y:" + xy); Log.d("Punto y", "y:" + yx + "y:" + yy); Log.d("MapFragment: ", "Center From Point: Long: " + centerFromPoint.longitude + " Lat" + centerFromPoint.latitude); 

Vous pouvez utiliser :

 latlng=map.getProjection().getVisibleRegion().latLngBounds.getCenter(); 

Pour obtenir le centre de la carte, j’ai utilisé la méthode onMapReady () en activité, puis utilisé la googleMap.setOnCameraChangeListener() method to get position of Came :

 @Override public void onMapReady(GoogleMap googMap) { googleMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() { @Override public void onCameraChange(CameraPosition cameraPosition) { Log.i("centerLat",cameraPosition.target.latitude); Log.i("centerLong",cameraPosition.target.longitude); } }); }