2013-05-02 10 views
6

Sto utilizzando la versione V3 di google maps e mi sono chiesto come procedere: ho un array di google.maps.Markers con il loro set di posizioni LatLng.ridimensionamento di una mappa di google per adattarsi a un gruppo di marcatori

Vorrei scorrere l'array e trovare i valori min/max di latitudine e longitudine dei marker, centrare e ridimensionare la mappa in modo che tutti i marker si adattino allo schermo, con un piccolo fattore fudge.

In loop attraverso la matrice di indicatori che posso gestire, ma non sono sicuro di come andare centrando e ridimensionando la mappa per adattarli tutti (con una piccola area di contorno circostante, quindi nessun indicatore è allineato contro un bordo).

Non sono sicuro se questo aiuti o importi ma la <div> mappa in cui vive è di 320x200 pixel.

risposta

11

È possibile creare una funzione come

function setBounds() { 

    var bounds = new google.maps.LatLngBounds(); 
    for (var i=0; i < markersArray.length; i++) { 
     bounds.extend(markersArray[i].getPosition()); 
    } 
    map.fitBounds(bounds); 
} 

Più semplice di così!

+0

Bello. Grazie. – larryq

5

Vedi the google.maps.Map fitBounds method

aggiungere tutte le posizioni dei tuoi marcatori a un google.maps.LatLngBounds oggetto vuoto, poi lo chiamano fitBounds su di esso.

var bounds = new google.maps.LatLngBounds(); 
for (var i=0; i < yourArrayOfMarkers.length; i++) { 
    bounds.extend(yourArrayOfMarkers[i].getPosition(); 
} 
yourMap.fitBounds(bounds); 
+0

Molto apprezzato, grazie. – larryq

+0

@geocodezip potresti voler correggere gli errori di battitura nel tuo codice. Deve essere una risposta a tarda notte;) – MrUpsidown

+0

corretto, ovviamente non l'ho eseguito. – geocodezip

Problemi correlati