6. XPlanManager CLI

Die Komponente XPlanManager CLI ist ein Kommandozeilenwerkzeug, welches dem Fachadministrator der xPlanBox ermöglicht, die Datenhaltung zu kontrollieren. Dabei ist das Kommandozeilenwerkzeug in der Lage, XPlanGML Instanzdokumente in die Datenhaltung zu Laden, zu Löschen, Listenausgaben zu erzeugen, sowie eingebettete Rasterpläne zu importieren.

6.1. Verwaltung der zentralen externen Codelisten

VOR dem erstmaligen Import eines Planes muss die zentral gepflegte XPlanGML 3.0 ExternalCodelist.xml in das Verzeichnis des XPlanManager gelegt werden, sofern es bereits eine Erweiterung gibt, die über den Standardinhalt hinaus geht. Planspezifische ExternalCodelisten werden nicht angewendet.

Das Verzeichnis zum ablegen dieser Datei befindet sich unter:
  • xplan-manager/classes/schema/XPlanGML_Syn
Dabei muss diese folgendermaßen lauten:
  • XplanSyn_ExternalCodeLists_XP3.xml

Wird diese aktualisiert, so kann sie auch regelmäßig neu eingespielt werden. Nur wenn diese Codeliste aktuell ist, können die in den XPlanGML Instanzdokumenten enthaltenen Codes beim Import in das synthetisierte Schema in ihre sprechenden Bezeichnungen aufgelöst werden. Befinden sich in Instanzdokumenten Codes, die nicht in der Liste aufgeführt sind, werden die Codes unverändert übernommen.

6.2. Benutzungsanleitung

Beim XPlanManager CLI handelt es ich um ein Kommandozeiletool, das parametrisiert aufgerufen wird. Da diese Anwendung bei der Installation in die PATH Variable aufgenommen wird, ist diese von einem beliebigen Ort aufrufbar.

6.2.1. Hilfe

Die Hilfe mit den Angaben zu den möglichen Eingabeparametern lässt sich mit dem Parameter -help ausgeben.

Aufruf:

XPlanManager -help

Ausgabe:

Usage: XPlanManager <options>

 -list
 -delete   <planid>
 -import   [--force] <xplanarchiv> [CRS]
 -export   <planid> [<verzeichnis>]

Alternativer Betriebsmodus:

 -deletewithconfig   <planid>
 -importmakeconfig   [--force] <xplanarchiv> [CRS]
 -createdb <DB Name> <JDBC-Connection> -u <user> -p <passwort> [-t <PostGis Template>]

Raster-Operationen:

 -addlayer <bplan|lplan|rplan|fplan> <rasterplanid> <tiffid> <layername> <layertitle> [<categoryname>]
 -removelayer <bplan|lplan|rplan|fplan> <layername>
 -addcategory <bplan|lplan|rplan|fplan> [<uppercategory>] <categoryname> <categorytitle>
 -removecategory <bplan|lplan|rplan|fplan> <categoryname>
 -movelayer <bplan|lplan|rplan|fplan> <layername> <categoryname>

6.2.2. Auflistung

Der -list Parameter gibt die Liste der geladenen Pläne aus.

Aufruf:

XPlanManager -list

Beispiel Ausgabe:

Id: 3, Version: XPLAN_3, Typ: FP_Plan, Name: Gesamtgeltungsbereich Flächennutzungsplan, Nummer: 12062024, GKZ: 12062024, Features: 2808, Importiert: 2010-02-18 17:57:11.669
Id: 5, Version: XPLAN_2, Typ: BP_Plan, Name: Gewerbe- und Industriepark Massen, Nummer: 01, GKZ: 111111, Features: 15, Importiert: 2010-02-18 17:58:21.583
Id: 6, Version: XPLAN_3, Typ: BP_Plan, Name: Lokstedt, Nummer: 56, GKZ: 02000000, Features: 251, Importiert: 2010-02-18 17:58:57.2
Id: 7, Version: XPLAN_3, Typ: BP_Plan, Name: Unbenannter Plan (3d099551-1f49-4b77-9008-68237a60426b), Nummer: -, GKZ: 4011000, Features: 351, Importiert: 2010-02-18 17:59:38.704
Id: 8, Version: XPLAN_3, Typ: BP_Plan, Name: Bebauungsplan 2135, Nummer: 2135, GKZ: 4011000, Features: 241, Importiert: 2010-02-18 18:00:45.077
Id: 9, Version: XPLAN_3, Typ: BP_Plan, Name: Bebauungsplan LA 22, Nummer: LA 22, GKZ: 1234567, Features: 146, Importiert: 2010-02-18 18:01:41.563
Id: 10, Version: XPLAN_3, Typ: RP_Plan, Name: Regionalplanbeispiel Bereich Siedlungsstruktur, Nummer: Siedlungsstruktur 1, Features: 282, Importiert: 2010-02-18 18:02:25.616
Id: 11, Version: XPLAN_3, Typ: LP_Plan, Name: Landschaftsplan 16 Gemeinde XYZ", Nummer: 16, Features: 1659, Importiert: 2010-02-18 18:03:22.091
Id: 12, Version: XPLAN_3, Typ: BP_Plan, Name: Bebauungsplan LA 22, Nummer: LA 22, GKZ: 02000000, Features: 1350, Importiert: 2010-02-18 21:16:06.753 Anzahl Pläne: 11

6.2.3. Import

Ein Import kann durch Angabe des -import Parameters gefolgt vom Pfad zum Planarchiv angestoßen werden. Bei dem Import können XPlanGML-Vektordaten und XPlanGML-Rasterdaten ohne zusätzlichen Paramter in die Datenbasis geladen werden.

Beispiel Aufruf:

XPlanManager -import ../Input-Planverzeichnis/Infrastruktur.zip

Während des Imports finden zahlreiche Konsistenz- und Korrektheitsüberprüfungen statt. Dies betrifft u.a. Schemavalidität, Geometrievalidität, Korrektheit von Links, Angabe von Koordinatenreferenzsystemen, u.v.m. Ist ggf. kein Koordinatenreferenzsystemen in den Daten enthalten so kann dies als Parameter übergeben werden.

Beispiel Aufruf:

XPlanManager -import ../Input-Planverzeichnis/Infrastruktur.zip EPSG:31467

Enthält das XPlanGML Instanzdokument Geometriefehler o.ä., ist es dringend angeraten, diese vor einem Import zu bereinigen. Unter Inkaufnahme von unerwartetem Diensteverhalten ist es dennoch möglich, den Import eines Planes zu erzwingen. Dies erfolgt mit dem Zusatzparameter für die Importroutine –force. Bitte beachten Sie die korrekte Reihenfolge der Parameterangabe.

XPlanManager -import --force ../Input-Planverzeichnis/Infrastruktur.zip

Beispiel Ausgabe für erfolgreichen Import

Analyse des XPlan-Archivs
('../../resources/testdata/XPlanGML_3_0/Infrastruktur.zip')...OK.
- Analyse des Dokuments...OK [1167 ms]: XPLAN_3, RP_Plan, EPSG:31466
- Schema-Validierung...OK [5135 ms]
- Einlesen der Features (+ Geometrievalidierung)...OK [6486 ms]: 492 Features

Geometrie-Warnungen: 20
- LineString (Ende in Zeile 33698, Spalte 26): Geschlossene Kurve verwendet falsche Laufrichtung (CW).

- Überprüfung der XLink-Integrität...OK [3 ms]
- Überprüfung der externen Referenzen...OK [1 ms]
- Erzeugen der XPlan-Syn Features...Keine Beschreibung für externen Code 'RpTextDefaultSymbol' (CodeList XP_StylesheetListe) gefunden. Verwende Code als Beschreibung. Keine Beschreibung für externen Code 'RpTextDefaultSymbol' (CodeList XP_StylesheetListe) gefunden. Verwende Code als Beschreibung.
...
OK [6376 ms]
- Einfügen der Features in den FeatureStore (XPLAN_3)...OK [9873 ms].
- Einfügen der Features in den FeatureStore (XPLAN_SYN)...OK [9217 ms].
- Einfügen in Manager-DB...OK [49 ms].
- Einfügen von Plan-Artefakt 'xplan.gml'...OK.
- Persistierung...OK [109 ms].
Plan wurde eingefügt. Zugewiesene Id: 13

6.2.4. Anlegen der Konfigurationsstrukturen

Bei dem Import von XPlanGML-Rasterdaten werden in die Datenbasis Konfigurationsdateien erzeugt, welche die Visualisierung der Rasterdaten im WMS ermöglichen. Damit Rasterpläne auch als WMS-Ebene zur Verfügung gestellt werden können, gelten für die Rasterdateien folgende Voraussetzungen:
  • sie liegen als gekachelte BIGTIFF GeoTiff-Dateien vor
  • die GeoTiff-Dateien liegen im Koordinatensystem EPSG:325833 vor
  • die GeoTiff-Dateien enthalten ihre räumliche Ausdehnung
  • um optimale Geschwindigkeit garantieren zu können, beinhalten die GeoTiff-Dateien Overlays mit geringerer Auflösung.
Für jede importierte Rasterdatei werden folgende Konfigurationsdateien erzeugt:
  • eine GeoTiffTileStore-Konfiguration
  • eine TileLayer-Konfiguration
  • in der Ebenenbaum-Konfiguration wird der Layer in eine Kategorieebene eingefügt, die die Rasterpläne nach Datum sortiert beinhaltet.

6.2.5. Bearbeitung von Ebenenbäumen

Die Bearbeitung von Ebenenbäumen wird als Erweiterung des XPlanManagers bereitgestellt. Hiermit ist es möglich, Rasterlayer zusätzlich zur sortierten Kategorieebene auch noch thematisch zu organisieren. Die sortierte Kategorieebene kann nicht manuell bearbeitet werden. Die bereitgestellten Funktionen ergeben sich aus folgender Spezifikation:

  1. XPlanManager fügt eine Ebene in den Ebenenbaum ein. Wird der <categoryname> weggelassen, wird die Ebene direkt unter der Wurzelebene eingefügt. Die tiffid ist hierbei der Datei-Basisname der gewünschten .tiff-Datei von dem Rasterplan.
XPlanManager -addlayer <bplan|rplan|fplan|lplan> <rasterplanid> <tiffid> <layername> <layertitle> [<categoryname>]
  1. XPlanManager entfernt eine Ebene aus der Ebenenkonfiguration.
XPlanManager -removelayer <bplan|rplan|fplan|lplan> <layername>
  1. XPlanManager fügt eine Kategorieebene hinzu. Wird der <uppercategory> weggelassen, wird die Ebene direkt unter der Wurzelebene eingefügt, andernfalls unterhalb der mit <uppercategory> angegebenen Kategorieebene. Das Verhalten ist rekursiv, d. h. die Verschachtelung der Kategorieebenen kann beliebig tief erfolgen.
XPlanManager -addcategory <bplan|rplan|fplan|lplan> [<uppercategory>] <categoryname> <categorytitle>
  1. XPlanManager löscht eine Kategorieebene. Achtung: Handelt es sich bei der zu löschenden Kategorieebene um eine Ebene mit untergeordneten Kategorien werden diese ebenfalls gelöscht!
XPlanManager -removecategory <bplan|rplan|fplan|lplan> <categoryname>
  1. XPlanManager bewegt eine Ebene in eine andere Kategorieebene.
XPlanManager -movelayer <bplan|rplan|fplan|lplan> <layername> <categoryname>

6.2.6. Export

Der Export eines Planes erfolgt unter Angabe des -export Parameters gefolgt von der PlanID (kann zuvor mit -list herausgefunden werden) und dem Ausgabeverzeichnis.

Beispiel Aufruf:

XPlanManager -export 9 outputverzeichnis

Beispiel Ausgabe für erfolgreichen Export:

- Schreibe Artefakt 'xplan.gml'...OK.
Plan 9 wurde nach 'xplan-exported-9.zip' exportiert.

6.2.7. Löschen

Beim Löschen wird dem -delete Parameter die PlanID (kann zuvor mit -list herausgefunden werden) übergeben.

Beispiel Aufruf:

XPlanManager -delete 1

Beispiel Ausgabe:

- Entferne Plan 1 aus dem FeatureStore (XPLAN_3)...OK
- Entferne Plan 1 aus dem FeatureStore (XPLAN_SYN)...OK
- Entferne Plan 1 aus der Manager-DB...OK
- Persistierung...OK
Plan 1 wurde gelöscht.

6.2.8. Alternativer Betriebsmodus

Alternativ zum normalen Import von Plänen bietet der XPlanManager die Möglichkeit, für jeden Plan eigene WMS Konfigurationen zu verwalten, sodass planspezifische WMS Dienste möglich sind. Dazu gibt es insgesamt 3 verschiedene Optionen für den XPlanManager.

Datenbank erzeugen:
Mit dem XPlanManager kann die Datenhaltung für Xplan-Archive erzeugt werden. Der XPlanManager wird beim Erzeugen der Datenhaltung auf diese neue Datenbank eingestellt.

Bei Nutzung von PostgreSQL-Datenbanken mit PostGIS bis Version 1.5 muß die Datenbank über ein Template mit installierten postgis-Erweiterungen erzeugt werden.

XPlanManager -createdb 'test' jdbc:postgresql://localhost:5432 -u postgres -p postgres -t template_postgis

In PostgreSQL-Datenbanken mit PostGIS ab Version 2.0 wird die Erweiterung vom Manager automatisch installiert. Daher entfällt die Angabe eines Templates mit PostGIS-Erweiterung.

XPlanManager -createdb 'test' jdbc:postgresql://localhost:5432 -u postgres -p postgres
Konfiuration erzeugen:
Soll beim Import eine WMS Konfiguration erzeugt werden, so muss der Import-Befehl folgendermaßen aussehen:
XPlanManager -importmakeconfig ../../resources/testdata/XPlanGML_4_0/Infrastruktur.zip
Konfiguration löschen:
Die entsprechende Konfiguration wird im Workspace xplansyn-wms-workspace im .deegree Verzeichnis des entsprechenden Nutzers abgelegt. Soll ein so importierter Plan gelöscht werden, ist folgender Befehl notwendig:
XPlanManager -deletewithconfig 1

6.2.9. Troubleshooting

Beim Importversuch sehr großer Archive, kann es zu einem Java Heap Space Error kommen. In diesem Fall sollte über eine Systemvariable der Wert erhöht werden, z.B. bei Linux durch

export JAVA_OPTS="-Xmx1024m"