getExtent () no OpenLayers retorna valores estranhos

8

Estou tentando obter a caixa delimitadora da área do mapa exibida pelo OpenLayers.

Tentei usar o map.getExtent () porque deveria ser exatamente o que eu precisava, mas os valores retornados são "estranhos":

Por exemplo, se eu centralizar o mapa em torno de Grenoble (França, 45,19 5,71) com o nível de zoom 14, o getExtent retornará: 634409.225396,5647894.800465,643008.391077,5652672.114732 Acho que estou fazendo algo errado, mas não consigo descobrir o que. O getExtent () deve retornar um objeto vinculado com valores Lat / Lon ...

O mapa é criado com:

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

Estou usando o OSM como minha camada base.

Marc
fonte

Respostas:

11

Parece que as coordenadas estão voltando na projeção do mapa (epsg 900913 AKA web mercator). Você poderá chamar transform no seu objeto de limites para convertê-lo em lat / long. Tente algo como isto (não testado):

map.getExtent().transform(map.projection, map.displayProjection)
Derek Swingley
fonte
+1 - o displayProjection é utilizado apenas por alguns controles que as coordenadas de exibição
geographika