2012-12-06 10 views

risposta

24

È possibile utilizzare il seguente codice per ottenere l'arco lat/lng:

VisibleRegion vr = mMap.getProjection().getVisibleRegion(); 
double left = vr.latLngBounds.southwest.longitude; 
double top = vr.latLngBounds.northeast.latitude; 
double right = vr.latLngBounds.northeast.longitude; 
double bottom = vr.latLngBounds.southwest.latitude; 

Spero che questo aiuta.

+0

possiamo ottenere centro della parte visibile mappa lat lng – Prasad

+0

Fantastico! Grazie. – Deciantis

6

prima ottenere una proiezione con GoogleMap.getProjection(). Quindi è possibile chiamare Projection.getVisibleRegion() per ottenere VisibleRegion con LatLngBounds.

Il motivo per cui un intervallo LatitudeSpan e Longitudine non ha più senso è perché la mappa può ora essere ruotata e inclinata e quindi viewport non è più un rettangolo allineato in latitudine/longitudine sulla mappa.

1

Ecco la risposta

LatLngBounds bounds = googleMap.getProjection().getVisibleRegion().latLngBounds; 
if (bounds.contains(ROMA)) { 
    marker = googleMap.addMarker(
    new MarkerOptions() 
     .position(ROMA) 
     .title("Hello") 
     .snippet("Nice Place") 
     .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher)) 
    );  
    System.out.println("Marker added"); 
} 

Aggiungere il marcatore solo quando cade nella regione del visibile

3

In questo modo funziona per me:

CameraPosition camPos2 = mapa.getCameraPosition(); 
LatLng pos = camPos2.target; 
Toast.makeText(MainActivity.this,"Lat: " + pos.latitude + " - Lng: " +pos.longitude, Toast.LENGTH_LONG).show(); 


Oops, ho frainteso la domanda, cioè non ho visto la parola "span". Secondo il API la corretta sarebbe:

prima ottenere i limiti:

LatLngBounds bounds = gMap.getProjection().getVisibleRegion().latLngBounds; 

e poi chiedere se qualsiasi punto è in limiti:

LatLng point = new LatLng (latitude, longitude); 
if(bounds.contains(point)){ 
    //do something 
} 
Problemi correlati