2012-01-24 21 views
10

Estoy tratando de encontrar algunas pistas donde debería buscar este tema, pero no encontré nada, y pasé muchas horas en esto.¿Cómo obtener la vista actual del mapa fuera de OpenLayers como geometría, cuadro delimitador o wkt?

También estoy tratando de obtener las coordenadas actuales de la ventana actual mostrada en el mapa de OpenLayers para agregar solo estos vectores que están en el cuadro delimitador actual de la ventana gráfica actual.

+0

Para ol3 ver http://stackoverflow.com/questions/22206570/how-do-bounds-work-in-openlayers-3 –

Respuesta

18

Para OpenLayers 2:

Map.getExtent() 

... devolverá un límites, que luego se puede utilizar para obtener las coordenadas de latitud/longitud en cualquier número de maneras: http://dev.openlayers.org/apidocs/files/OpenLayers/BaseTypes/Bounds-js.html#OpenLayers.Bounds

Idealmente, usted' d convertir los vectores en objetos de Geometría y compararlos con Map.getExtent() usando Bounds.intersectBounds() para ver si están en la ventana gráfica actual.

Para OpenLayers 3:

ol.Map.getView().calculateExtent(map.getSize()) 

... devolverá una tabla de coordenadas, lo que representa el cuadro de límite de la medida.

+3

¡Gracias! Eso funciona genial Lo uso ahora así: 'this.map.getExtent(). ToGeometry(). ToString()' que devuelve algo como 'POLYGON ((- 8852235.9398912 -2760000,11337764.060109 -2760000,11337764.060109 11370000, -8852235.9398912 11370000, -8852235.9398912 -2760000)) ' –

+0

No estoy familiarizado con el SIG, pero los números -8852235 -2760000, ... ¿no parecen latitud/longitud? Obtengo resultados similares cuando obtengo la extensión del mapa. ¿Los valores lat/long vienen en los rangos de -90/90 y -180/180? –

+0

Esta respuesta me ayudó a resolver ese problema: http://stackoverflow.com/a/2607145/1359765 –

Cuestiones relacionadas