Wie bekomme ich alle Markierungen auf der Karte, damit die Benutzer sie alle sehen können?
Ich habe einige Marker. Ich zeige sie auf der Karte an. Das Zentrum LonLat erhalte ich aus dem Durchschnitt der höchsten und niedrigsten Zahlen des Lon und Lat aller meiner Marker.
Also setze ich meine Karte auf den Mittelpunkt aller meiner Marker mit:
%Vor%8 ist nur eine zufällige Zoomstufe. Gibt es eine Möglichkeit, die perfekte Zoomstufe zu berechnen, damit alle Markierungen in der Karte angezeigt werden?
Funktioniert mit zoomToExtent ()
%Vor%Für jeden Marker lonlat:
%Vor%Übergeben Sie es dann an die Funktion:
%Vor%Eine ähnliche Methode, um eine Schleife zu vermeiden, ist OpenLayers getDataExtent () Funktion hier . Sie müssen es auf die Ebene anwenden, die Ihre Marker enthält:
%Vor% Dies ist ein alter Thread, aber mit Änderungen an OpenLayers dachte ich, ich würde eine neue Lösung dafür veröffentlichen. Wenn Sie [ol.source.Vector][1]
als Layer-Quelle verwenden, können Sie die folgende Zeile aufrufen, damit sie in die Kartenansicht um Ihre Daten passt.
Dadurch wird gleichzeitig die Karte zentriert und der Zoom so eingestellt, dass alle Ihre Daten gleichzeitig sichtbar sind.
Tags und Links javascript openlayers openstreetmap