Zu Ihrer zweiten Frage :
Ein SLD kann dynamisch erstellt werden, dh es kann Karten mit dynamischen Daten formatieren. Damit dies funktioniert, müssen Sie die IDs der Polygone kennen, die Sie formatieren möchten, und Sie müssen Ihren Webdienst ändern / erweitern.
Lassen Sie Ihren Webdienst SLDs im laufenden Betrieb generieren, anstatt nur Daten zurückzugeben. Dies ist mit .NET, Java, PHP usw. recht einfach. Das von Ihnen generierte SLD enthält eine Regel für jedes Farbband, das Sie anzeigen möchten. Jede Regel identifiziert die Polygone, für die Farbe gilt, anhand ihrer ID. Der Filterblock jeder Regel enthält PropertyIsEqualTo 1 OR PropertyIsEqualTo 2 OR ...
. Jede Regel formatiert ihre Polygone mit der Farbe, die Sie zur Darstellung des Werts ausgewählt haben. Sie haben dann zwei Möglichkeiten, GeoServer anzuweisen, Ihr dynamisches SLD zu verwenden.
- Wenn GeoServer über HTTP-Zugriff auf Ihren Webdienst verfügt, können Sie beispielsweise eine verschlüsselte URL (JS) übergeben
'http://geoserver/wms?request=GetMap...&sld=' + encodeURIComponent('http://web-service/generateSLD?and=any-parameters-that-influence-sld-generation')
. Wenn GeoServer die WMS-Anforderung erhält, werden die Parameter dekodiert und diese URL nach dem SLD abgefragt. Aus Sicht von GeoServer unterscheidet sich dies nicht von der Abfrage eines statischen SLD auf einem Dateiserver.
- Wenn GeoServer nicht auf Ihren Webdienst zugreifen kann, muss Ihr Client zuerst den Webdienst nach dem dynamischen SLD fragen und dann das SLD im Parameter sld_body der WMS-Anforderung an GeoServer übergeben. Beachten Sie die von Ihrem Client (z. B. einem Browser) oder Ihrem Webserver auferlegten Beschränkungen der URL-Länge
Beide Ansätze können mit einem statischen SLD getestet werden, das Sie zum Testen erstellen. Sie wissen also, wie erfolgreich dies ist, bevor Sie sich um Ihren Webdienst bemühen. Beide Ansätze können verwendet werden, um GeoServer nach der Legendengrafik zu fragen, die dann dieselben Regeln darstellt (wenn Sie jedoch Option 1 verwenden, haben sich die zum Generieren Ihres SLD verwendeten Daten möglicherweise nach dem Generieren der Karte geändert).
Ich denke, dies ist Ihre beste Option für Frage 2.
Zu Ihrer ersten Frage :
Stellen die Temperaturpunkte immer die gleichen Orte dar? Wenn ja, können Sie im Voraus herausfinden, in welche Polygone diese Temperaturpunkte fallen? Wenn ja, können Sie den oben beschriebenen Ansatz einfach wiederverwenden, wobei Ihr SLD-Generierungsskript Punkte in Polygon-IDs übersetzt.
BEARBEITEN Ich habe gerade gesehen, dass dies in einer anderen Frage erwähnt wurde: http://pypi.python.org/pypi/python-sld/