OpenLayers: Zoom-Level von GPX-Track bestimmen

Hi zusammen,

ich stehe zur Zeit vor einem Problem bei der Darstellung von GPX-Tracks mit Hilfe von OpenLayers.
Ich nutze OpenLayers zur Zeit schon erfolgreich um auf der Outdoor-Website eines Freundes aufgezeichnete Wandertouren darzustellen.
Siehe: http://www.walking-away.de/fernwanderweg-gr221-auf-mallorca/

Das Problem an der Darstellung ist, dass die Zoom-Stufe auf den Track zur Zeit für jede GPX-Datei statisch im Code steht. Ein Track, der jedoch eine Länge von 5 km hat, benötigte allerdings eine höhere Zoom-Stufe (näher) als ein Track, der beispielsweise 100 km lang ist. Die Zoom-Stufe habe ich momentan für jeden Track (GPX-Datei) auf 14 fest im Code hinterlegt.

Gibt es eine einfache Möglichkeit, die korrekte Zoom-Stufe für unterschiedliche Tracks zu ermitteln? Der nächste Schritt ist z.B. auch, dass die Karte statt auf den Track-Anfang auf den gesamten Track zentriert werden soll. Dazu wäre eine flexible Zoom-Stufe sehr wichtig.

In der Dokumentation von OpenLayers habe ich dazu leider nichts gefunden. Vielleicht hat jemand von euch eine Idee. Kann man eventuell eine vernünftige Zoom-Stufe anhand des GPX-Layers berechnen?

Ich bin für alle Vorschläge offen.

Vielen Dank schon einmal und einen schönen restlichen Sonntag.

Gruß,

Timo

So eine Möglichkeit gibt es. Angenommen, du hast einen GPX-Layer namens myLayer und einen Kartenobjebt namens map. Dann funktioniert der Autozoom so:

var dataExtent = myLayer.getDataExtent();
map.zoomToExtent(dataExtent);

Ein kleines Programmbeispiel, das genau das macht (also auf Tracks zoomen), gibt es hier.

Klasse. Hat genau so funktioniert, wie du beschrieben hast.
Da brech’ ich mir Tagelang einen ab und suche eine eigene Lösung und dabei bietet OpenLayers die Funktion bereits. Ich liebe dieses Projekt :slight_smile:

Danke dir vielmals.

Gruß,
Timo