OpenLayers zeigt alle Markierungen auf dem Bildschirm an

8

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?

    
Klaasvaak 09.04.2013, 19:37
quelle

3 Antworten

3

Funktioniert mit zoomToExtent ()

%Vor%

Für jeden Marker lonlat:

%Vor%

Übergeben Sie es dann an die Funktion:

%Vor%     
Klaasvaak 09.04.2013, 19:58
quelle
8

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%     
AnthonyLeGovic 10.04.2013 06:14
quelle
2

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.

%Vor%

Dadurch wird gleichzeitig die Karte zentriert und der Zoom so eingestellt, dass alle Ihre Daten gleichzeitig sichtbar sind.

    
UnboxedSoul 28.12.2017 20:12
quelle