2012-03-19 10 views
15

Abbiamo un filtro di ricerca distante. Ha una vista sulla mappa che consente di impostare il marker di base e la casella di testo di input che consente di inserire la distanza in chilometri.Come i cerchi della mappa di Google si adattano alla mappa

Quindi in viewport usiamo circle per mostrare questa distanza sulla mappa.

Domanda, come posso ingrandire la mappa in modo che si adatti al cerchio?

risposta

38

A google.maps.Circle ha un metodo getBounds() che restituisce lo LatLngBounds della cerchia. È possibile utilizzare questo limite come argomento per google.maps.Map.fitBounds()

Se si utilizza un cerchio, si può fare questo:

map.fitBounds(circle.getBounds()); 

... alla fine della init funzione.

http://jsfiddle.net/doktormolle/MHLjy/

+0

Questo semplice. Grazie. Ho usato map.fitBounds() ma non ho notato che circule ha getBounds. Molto bello :) –

+0

Molto bene grazie –

15

Per più circoli utilizzare unione invece di estendere :

var bounds = new google.maps.LatLngBounds(); 

$.each(circles, function(index, circle){ 
    bounds.union(circle.getBounds()); 
}); 

map.fitBounds(bounds); 
+1

Bello. L'ho usato per garantire che * almeno * il cerchio del raggio di ricerca sia compreso, quindi estendere i limiti per eventuali marcatori ulteriormente con latlngBounds.extend (marker.getPosition()) – Jon

Problemi correlati