He estado buscando una forma de generar mapas estáticos del lado del servidor usando Python (o cualquier otro idioma, no importa).
Puedo crear los mapas que quiero con QGIS (y se ven realmente geniales) pero no sé cómo automatizar el proceso.
Lo que quiero es;
Crear un estilo de mapa en QGIS y exportarlo a algún tipo de XML (hay un complemento llamado quantumnik, pero supongo que ya no está disponible)
Ejecutar una consulta sobre PostGIS en mi script Python
- Crear un archivo de forma o solo un PNG utilizando el conjunto de datos devuelto por la consulta y el estilo XML definido anteriormente.
- Repetir todo el proceso todas las noches con diferentes conjuntos de datos.
He jugado con Mapnik pero aún no he podido generar un mapa de calor ( https://github.com/stellaeof/mapnik-rasterizers )
He leído sobre el servidor QGIS, GeoServer, MapServer. Pero ahora estoy confundido ya que hay muchas herramientas alrededor.
¿Mapnik es la dirección correcta o hay mejores herramientas para ese tipo de proceso?
¿O hay una manera de usar QGIS mediante programación en un servidor?
EDITAR:
Después de probar muchas cosas diferentes, decidí usar GeoServer. Lo instalé usando la imagen del contenedor de Docker: https://github.com/kartoza/docker-geoserver Puede generar png, gif, jpeg y también puede servir capas WMS que se pueden integrar con Leafletjs con bastante facilidad.
El único problema es que estoy tratando de diseñar mis mapas con QGIS primero y luego exportarlos a GeoServer usando el complemento "Geoserver Explorer" y no funciona bien para las etiquetas y algunas otras características. Supongo que no hay una manera fácil de generar SLD en QGIS. Sigo arreglando las configuraciones SLD a mano después de exportarlas a GeoServer. Pero esta sigue siendo la mejor solución, supongo.
Todavía sería genial si pudiera sugerir mejores complementos o formas de integrar QGIS y GeoServer o cualquier otro editor de SLD.
Respuestas:
Sí, es complicado, y en parte debido a que hay muchas piezas móviles en el proceso. He hecho algo similar usando Python y Mapnik. A continuación se muestra el procedimiento paso a paso:
1) Un script de Python descarga los datos del servidor (datos de estaciones meteorológicas dispersas en este caso). 2) Un script bash ejecuta gdal_grid que interpola los datos y escribe un archivo GeoTIFF. 3) Un script bash ejecuta generate_tiles.py usando un archivo de estilo mapnik predefinido y GeoTIFF para crear todos los mosaicos. 4) Una aplicación web que usa la capa OpenLayers + TMS consume esos mosaicos.
Espero eso ayude. Salud
fuente