Domanda

Ho appena iniziato a utilizzare l'API di Google Maps (v3.0) e hanno avuto una buona dose di successo finora. Sto caricando un insieme di oggetti con valori di latitudine e longitudine da un database, facendoli passare nel mio script e loop su di loro nello script per aggiungerli alla mappa.

Sto usando il metodo "bounds.extend() / map.fitBounds()" di impostazione della mappa zoom e limiti (vedi codice qui sotto), che funziona come previsto la prima volta intorno; tuttavia, se posso eliminare i marcatori esistenti, prendere un'altra serie di oggetti, e fare la stessa cosa nella stessa istanza mappa , imposta i limiti in modo non corretto, di solito con un conseguente zoom minimo (punto di vista di un astronauta ).

Il mio sospetto è che la mia carta oggetto ha qualche ricordo della precedente serie di limiti che ho dato e che ho bisogno di trovare un modo per cancellare questi limiti prima di assegnare i miei nuovi, ma davvero non può essere troppo sicuro.

Ogni aiuto è molto apprezzato!

var locationList = [];
for (var i = 0; i < mapPoints.length; i++) { // mapPoints is a collection of DTOs
    var mapPoint = mapPoints[i];
    var location = new google.maps.LatLng(mapPoint.Latitude, mapPoint.Longitude);
    locationList.push(location);

    var marker = new google.maps.Marker({
        map: map,
        icon: '/Content/images/map/' + mapPoint.Status.Icon,
        shadow:  '/Content/images/map/shadow.png',
        position: location
    });
    markers.push(marker); // markers is an Array that is managed outside this loop
}

var bounds = new google.maps.LatLngBounds();
for (var j = 0; j < locationList.length; j++) 
    bounds.extend(locationList[j]);
map.fitBounds(bounds);
È stato utile?

Soluzione

Questa non è la risposta, per così dire, ma una (leggermente hacky) soluzione che ho scoperto su un filo nel gruppo API v3 di Google Maps Javascript:?

//map.fitBounds(bounds);
setTimeout( function() { map.fitBounds( bounds ); }, 1 ); 

Altri suggerimenti

se la risposta di cui sopra non funziona per voi (che non ha fatto per me), il problema potrebbe risiedere nella bootstrap (supponendo che si sta usando). modali bootstrap specificamente generare tutti i tipi di comportamento wonky quando ho incorpora un oggetto di mappa in esso .. stranamente correggere se stesso se / quando cado un 'alert' in là .. in ogni caso, ho risolto tutti i miei problemi da solo costruire il mio modale (vale a dire, non si utilizza bootstraps modali).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top