Statische Heatmaps serverseitig generieren?


8

Ich habe nach einer Möglichkeit gesucht, serverseitige statische Karten mit Python (oder einer anderen Sprache, spielt keine Rolle) zu generieren.

Ich kann die gewünschten Karten mit QGIS erstellen (und sie sehen wirklich gut aus), aber ich weiß nicht, wie ich den Prozess automatisieren soll.

Was ich will ist;

  • Erstellen eines Kartenstils in QGIS und Exportieren in eine Art XML (es gibt ein Plugin namens quantumnik, das aber vermutlich nicht mehr verfügbar ist)

  • Ausführen einer Abfrage über PostGIS in meinem Python-Skript

  • Erstellen eines Shapefiles oder nur eines PNG mit dem Datensatz, der aus der oben definierten Abfrage- und Stil-XML zurückgegeben wurde.
  • Wiederholen Sie den gesamten Vorgang jede Nacht mit verschiedenen Datensätzen.

Ich habe mit Mapnik herumgespielt, konnte aber noch keine Heatmap erstellen ( https://github.com/stellaeof/mapnik-rasterizers ).

Ich habe über QGIS Server, GeoServer, MapServer gelesen. Aber jetzt bin ich verwirrt, da es viele Werkzeuge gibt.

  1. Ist Mapnik die richtige Richtung oder gibt es bessere Werkzeuge für diese Art von Prozess?

  2. Oder gibt es eine Möglichkeit, QGIS programmgesteuert auf einem Server zu verwenden?

BEARBEITEN:

Nachdem ich viele verschiedene Dinge ausprobiert habe, habe ich mich für GeoServer entschieden. Ich habe es mithilfe des Docker-Container-Images installiert: https://github.com/kartoza/docker-geoserver. Es kann PNG, GIF, JPEG generieren und auch WMS-Layer bereitstellen, die ganz einfach in Leafletjs integriert werden können.

Das einzige Problem ist, dass ich versuche, meine Karten zuerst mit QGIS zu entwerfen und sie dann mit dem Plugin "Geoserver Explorer" auf GeoServer zu exportieren. Dies funktioniert nicht gut für Beschriftungen und einige andere Funktionen. Ich denke, es gibt keine einfache Möglichkeit, SLD in QGIS zu generieren. Ich repariere SLD-Konfigurationen weiterhin von Hand, nachdem ich sie auf GeoServer exportiert habe. Aber das ist immer noch die beste Lösung, denke ich.

Es wäre immer noch großartig, wenn Sie bessere Plugins oder Möglichkeiten zur Integration von QGIS und GeoServer oder anderen SLD-Editoren vorschlagen könnten.


Aus schmerzhafter persönlicher Erfahrung verwende ich fast wöchentlich den genauen Prozess, den Sie beschreiben (SLD in QGIS erstellen und dann manuell an den Geoserver anpassen). Es ist gelungen, einige der Korrekturen durch Skripte auf dem Geoserver zu automatisieren, aber nicht ideal.
Phil G

Es gibt SLDEditor github.com/robward-scisys/sldeditor/wiki/userguide oder sowohl QGIS als auch GeoServer akzeptieren Beiträge oder Bargeld, um Probleme zu beheben, wenn sie für Sie von Bedeutung sind
Ian Turton

Antworten:


1

Ja, es ist kompliziert und teilweise wegen der vielen beweglichen Teile im Prozess. Ich habe etwas Ähnliches mit Python und Mapnik gemacht. Nachfolgend finden Sie eine schrittweise Anleitung:

1) Ein Python-Skript lädt die Daten vom Server herunter (in diesem Fall verstreute Wetterstationsdaten). 2) Ein Bash-Skript führt gdal_grid aus, das die Daten interpoliert und eine GeoTIFF-Datei schreibt. 3) Ein Bash-Skript führt generate_tiles.py unter Verwendung einer vordefinierten Mapnik-Style-Datei und des GeoTIFF aus, um alle Kacheln zu erstellen. 4) Eine Web-App, die die OpenLayers + TMS-Ebene verwendet, verwendet diese Kacheln.

Ich hoffe es hilft. Prost

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.