getExtent () in OpenLayers gibt seltsame Werte zurück

8

Ich versuche, den Begrenzungsrahmen des Kartenbereichs von OpenLayers anzuzeigen.

Ich habe versucht, map.getExtent () zu verwenden, da es genau das sein sollte, was ich brauche, aber die zurückgegebenen Werte sind "seltsam":

Wenn ich zum Beispiel die Karte mit Zoomstufe 14 um Grenoble (Frankreich, 45.19 5.71) zentriere, gibt getExtent Folgendes zurück: 634409.225396,5647894.800465,643008.391077,5652672.114732 Ich denke, ich mache etwas falsch, aber ich kann nicht herausfinden, was. GetExtent () soll ein gebundenes Objekt mit Lat / Lon-Werten zurückgeben ...

Die Karte wird erstellt mit:

var map = new OpenLayers.Map('map', {
  projection: new OpenLayers.Projection("EPSG:900913"),
  displayProjection: new OpenLayers.Projection("EPSG:4326")
});

Ich verwende OSM als Basisschicht.

Marc
quelle

Antworten:

11

Es sieht so aus, als würden die Koordinaten in der Projektion der Karte zurückkommen (epsg 900913 AKA Web Mercator). Sie sollten in der Lage sein, die Transformation für Ihr Bounds-Objekt aufzurufen , um es in lat / long zu konvertieren. Versuchen Sie so etwas (ungetestet):

map.getExtent().transform(map.projection, map.displayProjection)
Derek Swingley
quelle
+1 - die displayProjection wird nur von einigen Steuerelementen verwendet, die Koordinaten anzeigen
geographika