Ich habe einen Haufen oder Marker, und ich möchte nur den Bereich zeigen, der sie enthält. Ich habe eine lange Liste mit ähnlichen Fragen gefunden (siehe am Ende des Posts für einige), aber keine der Lösungen funktioniert für mich. Die LatLngBounds wird korrekt erstellt, aber wenn ich fitBounds aufrufen, lautet das Ergebnis: Anstatt von: Kann jemand einen offensichtlichen Fehler in meinem Code entdecken?
%Vor%Einige der Beiträge, die ich gelesen und ausprobiert habe (Liste nicht umfassend):
Bearbeiten : Das passiert tatsächlich, wenn (wie ich es in meiner Anwendung mache) die Karte zuerst versteckt ist und erst später angezeigt wird. Ich verstecke es auf diese Weise:
$('#map').hide();
und zeige es:
%Vor%Gibt es Hinweise darauf, warum dies geschieht und wie man dies verhindert (abgesehen von der Initialisierung der Karte, wenn sie zuerst angezeigt wird)?
Wenn ich Zoom und Mitte bei der Deklaration des Kartenobjekts setze (d. h. ich verwende fitBounds()
nicht), dann wird die Karte auch nach einer Ausblendung / Show korrekt angezeigt.
Ich kann den Zoom und die Mitte jedoch nicht einstellen, da die Liste der Punkte an anderer Stelle abgerufen wird und ich vorher nicht weiß, wo sie sich befinden.
Gelöst (nicht auf eine nette Art, obwohl).
Was ich getan habe, war die Initialisierung von LatLngBounds
mit den Punkten beim Laden der Seite, aber das Schwenken und Zoomen nur beim Anzeigen der Karte. Auf diese Weise funktioniert es richtig.
ZB
und dann später (klicken Sie zum Beispiel auf eine Schaltfläche)
%Vor%Es funktioniert, aber ich mag es nicht, dass diese globale Var herumhängt. Ich implementiere das gleiche Verhalten mit OpenLayers, und es funktioniert richtig, ohne diesen Hack zu benötigen. Wenn jemand eine bessere Lösung hat, bitte posten Sie es und ich werde es akzeptieren, wenn es funktioniert.
Danke an @Engineer und @Matt Handy, die mir helfen, eine mögliche Fehlerquelle zu eliminieren.
Ich habe deinen Code in einer Geige ausprobiert und es funktioniert wie erwartet.
Der Grund dafür, dass Ihr Code fehlschlägt, muss in der Definition Ihrer Datenpunkte liegen (wie bereits von Engineer vorgeschlagen). Vergleichen Sie Ihre Listendefinition mit meiner und prüfen Sie, ob sie unterschiedlich sind.
Tags und Links javascript google-maps google-maps-api-3 fitbounds