Frage

Ich habe gerade mit dem Google Maps API begonnen (v3.0) und haben ziemlich viel Erfolg hatte bisher. Ich bin eine Reihe von Objekten mit Breite und Länge Werten aus einer Datenbank geladen, um sie in mein Skript vorbei, und Schleifen über sie im Skript, um sie zu der Karte hinzuzufügen.

Ich bin mit der „bounds.extend() / map.fitBounds()“ Methode der Zoom der Karte zur Einstellung und Grenzen (siehe Code unten), die wie erwartet erstmals arbeitet rund um; aber wenn ich die vorhandenen Markierungen räumen, holen einen anderen Satz von Objekten, und das gleiche tun auf der gleichen Karte Instanz , setzt sie die Grenzen nicht richtig, in der Regel in einem minimalen Zoom resultierende (eine Ansicht des Astronauten ).

Mein Verdacht ist, dass meine Karte Objekt etwas Speicher des vorherigen Satzes von Grenzen hat, dass ich ihm gegeben habe und dass ich einen Weg finden, diese Grenzen zu löschen, bevor meine neue Zuordnung, aber ich kann wirklich nicht sein zu sicher.

Jede Hilfe sehr geschätzt!

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);
War es hilfreich?

Lösung

Dies ist nicht die Antwort, so zu sprechen, aber eine (etwas hacky) Abhilfe, die ich auf einem Thread in der Google maps JavaScript API v3 Gruppe:?

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

Andere Tipps

, wenn die oben genannte Antwort nicht funktioniert für Sie (es hat für mich nicht), ist das Problem in Bootstrap liegen könnte (vorausgesetzt, Sie verwenden es). Bootstrap modals speziell alle Arten von wonky Verhalten erzeugen, wenn ich in eine Map-Objekt einzubetten .. neugierig selbst zu korrigieren, wenn / wenn ich dort auf jeden Fall .. ein ‚Alarm‘ fallen, löste ich alle meine Probleme nur durch meine eigenen modalen Gebäude (dh nicht Schopf aus dem Sumpf modals verwendet wird).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top