Erstelle Indikator

Dieser Workflow hat die Aufgabe alle Indikator-spezifischen Funktionalitäten bereitzustellen und die Karte auf Basis des gesetzten Indikators letztendlich zu visualisieren. Beispielsweise sind für einen einzelnen Indikator unterschiedliche Zeitschnitte oder Funktionen möglich, diese werden hiermit geprüft und bereitgestellt. Um die Komplexität zu minimieren, wurden die aufgerufenen Funktionalitäten auf dem Backend nicht in die Beschreibung einbezogen. Diese können jedoch über den Punkt Backend nachgelesen werden.


Wird über die Urlparamter oder das Indiatorauswahlmenü ein Indikator definiert, führt die Anwendung den folgend abgebildeten Workflow aus. War der Prozess erfolgreich wird der Workflow Add Indikator to Map ausgeführt.

Beschreibung

der Komplette Workflow wird über das Objekt indikatorauswahl mit der Funktion setIndicator(ID des Indikator) aufgerufen.

  1. Im ersten Schritt wird geschaut ob bereits ein Indikator in der URL übergeben wurde oder altenativ eine Auswahl über das Auswahlmenü erfolgte.
  2. Da jeder Indikator seine eigene Farbgebung besitzt, wird ein durch den Nutzer definiertes Farbschema zurückgesetzt.
  3. Aufbauend wird die Legende erzeugt, welche ihre Informationen immer für den gewählten Indikator anzeigt. Die notwendigen Informationen
  4. Da jeder Indikator unterschiedliche Zeitschnitte besitzt, muss für jeden Indikator geprüft werden ob dieser für den Zeitschnitt bereitgestellt werden kann. Dies übernimmt die init() Funktion des zeitslider. Ist der Indikator für den gewünschten Zeitschnitt nicht verfügbar, wird über den alertmanager eine entsprechende Meldung ausgegeben.
  5. Im nächsten Schritt wird die Räumliche Analyseebene initiiert und vom Objekt raeumliche_visualisierung über die Funktion getRaeumlicheGliederung() abgefragt ob sich die Karte in der Gebietsansicht oder Rasteransicht befindet. Folgend werden die Zweige näher erläutert, welche je nach Auswahl genommen werden:
    1. Rasteransicht
      1. Über das Objekt rasterweite_slider wird geprüft ob der Indikator in der gewählten Auflösung zur Verfügung gestellt werden kann. Wenn nicht wird der Paramter Rasterweite auf 0 gesetzt, was der Weite von 100m entspricht, da alle Indikatoren in dieser Rasterweite verfügbar sind.
      2. Über das Objekt indikator_raster wird die Funktion init() aufgerufen, welche den Mapserver anweist eine neue Indikatorkarte zu generieren und diese der Karte hinzufügt.
    2. Gebietsansicht
      1. Da jeder Indikator unterschiedliche Räumliche Auswahlmöglichkeiten besitzt, muss für jeden Indikator dieses Menü neu gesetzt werden. Dies wird über die Funktion fill() des Objektes raeumliche_analyseebene ermöglicht.
      2. Anschließend wird bei einem gesetzen Indikator geprüft, ob dieser innerhalb der Auswahl für die Räumliche Analyseebene zur Verfügung steht, falls nicht wird eine entsprechende Meldung über den alertmanager ausgegeben. Wenn ja wird der URL-Parameter über die MEthode updateURLParamter() des Objektes urlparamter neu gesetzt.
      3. Jetzt wird die zweite Raumebene geprüft, ob der Nutzer eine eigene Gebietskulisse erstellt hat, deren AGS in der URL abgelegt sind. Ist dies nicht der Fall kann die Karte auf der Basis der Räumlichen Analyseebene (raeumliche_analyseebene) erstellt werden. Wenn ja, wird über die Bibliothek Semantic-UI der Erstellungsvorgang getriggert.
      4. Hat der Nutzer die Gebietskulisse nochmals fein gegliedert, wird das Objekt raumgliederung aufgerufen und hier die Methode init(), welche prüft ob der Indikator gesetzt werden kann und im letzten Schritt über das Object indikator_json die Indikatorkarte hinzufügt.