Mi organización tiene una aplicación web para mostrar datos climáticos globales y regionales y estamos considerando mejoras. Nuestra idea principal es crear una aplicación basada en OpenLayers para mostrar rásteres climáticos sobre capas base como OSM o Google Maps. El mapa también puede incluir algunas otras capas vectoriales específicas de la aplicación y una barra de colores u otras características de leyenda que describen los datos. Por lo que puedo decir, todo esto parece factible con OpenLayers.
Sin embargo, un requisito para el proyecto es poder exportar ( idealmente desde la aplicación web) mapas de calidad de publicación (más o menos). Un caso de uso típico sería algo como esto:
- Un usuario, utilizando la capa base como guía, navega a su área de interés.
- El usuario selecciona un parámetro climático (p. Ej., Temperatura media para la década de 2040) o un conjunto de parámetros
- El usuario presiona el botón "exportar" y luego descarga un mapa de buena calidad que incluye todos los elementos descritos en el primer párrafo.
No he podido encontrar nada en OpenLayers sobre renderizar a una imagen. ¿Alguien sabe si esto es posible? Y si no, ¿qué otros enfoques para la representación podríamos tomar? Supongo que necesitaríamos pasar todos los parámetros del mapa (bbox, proyección, capas incluidas, etc.) a algún motor de renderizado externo; ¿Qué motores de renderizado de código abierto existen?
fuente
Respuestas:
Las principales formas de mostrar bonitos mapas impresos de capas abiertas que conozco son:
-Geoservidor con Geoext
-Mapfish con Geoext
Ambas soluciones se basan en una parte de Java (por ejemplo, http://geoserver.org/display/GEOS/Printing+in+GeoServer o http://www.mapfish.org/doc/print/ )
-Openlayers independientes (Ver el documento oficial http://trac.openlayers.org/wiki/Printing )
Más recientemente, una técnica parece representar la imagen con PhantomJS (un navegador de simulación de software desde la línea de comandos) http://acuriousanimal.com/blog/2012/09/17/creating-static-maps-in-openlayers-using-phantomjs/
Algunas bibliotecas recientes usan las capacidades de representación de Canvas del navegador para "capturar" imágenes como este ejemplo de OpenLayers 3 o este folleto
fuente
Cree que tendrá que buscar en Geoserver para crear un servicio WFS o WMS o WMST http://geoserver.org/display/GEOS/What+is+Geoserver
Entonces Openlayers puede analizar el servicio Geoserver
http://openlayers.org/dev/examples/getfeature-wfs.html
WMTS (Servicio de mosaico de mapas web) http://openlayers.org/dev/examples/wmts.html
fuente
Para obtener la "calidad de publicación", desea 300 ppp, por lo que el uso de los mapas que pasa para abrir las capas para la representación de la pantalla probablemente no sea un comienzo.
La pestaña de exportación de OpenStreetMap usa OpenLayers para seleccionar lo que desea exportar, pero luego lo procesa con un proceso de servidor de fondo separado (en realidad, una opción de varios). Este es probablemente el enfoque que tendrá que tomar. Es poco probable que pueda utilizar Google Maps para esto.
fuente