GML Dateien

Ermöglicht den Direktzugriff auf GML Dateien.

Beim ersten Zugriff wird das Stammelement der GML Datei (und der entsprechende Namespace ausgewertet), anhand dessen wird der Inhaltstyp ermittelt.

Derzeit werden folgende Elemente unterstützt (in Klammern der Namespace):

  • XPlanAuszug (http//www.xplanung.de/xplangml/3/0, http//www.xplanung.de/xplangml/4/0, http:://www.xplanung.de/xplangml/4/1)

  • AX_Bestandsdatenauszug (http://www.adv-online.de/namespaces/adv/gid/6.0)

  • AX_NutzerbezogeneBestandsdatenaktualisierung_NBA (http://www.adv-online.de/namespaces/adv/gid/6.0)

Abfragen mittels GeoSQL sind möglich.

Eine Auflistung der derzeit unterstützten GML Elemente/Geometrietypen finden Sie unter Geometrieformate.

Die Attribute können wie gehabt abgefragt werden. Für die Objekt-Spalte (Att) kann in GeoSQL per JSON zugegriffen werden. In Css erfolgt der Attribut-Zugriff via Dot-Syntax, d.H. att.ElementName.

Es gibt diesen Ebenentyp in der Ausprägung als Einzeldatei oder aber Version 7.0.6.660 als Menge von GML Dateien.

Die Darstellung kann mittels Vektor-Css erfolgen, oder je nach Typ auch über eine Standard-Symbolik. Dazu sind die üblichen angaben stile, cssFile etc. hier anwendbar. ]

Bsp. in GeoSQL:


SELECT
	*
FROM
	XPlan1
where
      TypeName='BP_VerEntsorgung' 
 AND json_extract(ToJson(att),'$.rechtsstand') == '2000'

Bsp. als Bedingung in Css:

id [TypeName=="BP_VerEntsorgung" and att.rechtsstand == "2000"]
{
 ...
}

Argumente (Einzeldatei)

Typname: GmlFile

Argumente (Auflistung)

Typname: GmlFileColl

  • folder: Der Name des Ordners mit den GML Dateien (schließt sich mit fileName aus)
  • recursive: Ordner rekursiv durchsuchen.
  • filePattern (*.gml): Suchmuster für die Dateien in dem Ordner.

... oder ...

Hiermit können mehrere GML Dateien als eine Ebene zusammengefasst werden. Die Einzel Datei wird als SubLayer innerhalb dieser Ebene abgebildet.

Der Parameter "loadErrorBehavior" wird ausgewertet. Bei "Lax" werden fehlerhafte Dateien oder Dateien die von der ersten abweichenenden GML Type haben ignoriert. Es wird in dem Fall nur eine Trace-Warnung ausgegeben.

Abfragen sind derzeit nicht sonderbar effizient, da immer alle Dateien gelesen vollständig gelesen werden. Es erfolgt nur eine Optimierung: Ein Filter auf Geometrien, wenn dieser nicht mit "OR" über andere Attribute verbunden ist führt zum "ausdünnen" der Dateiliste.

Der EpsgCode des Layers ergibt sich aus dem der 1. GML Datei.

Es dürfen keine Dateitypen gemischt vorkommen. D.H alle in der Collection befindlichen Quellen müssen den gleichen Root-Namespace haben. (z.B.: XPlanAuszug (http:://www.xplanung.de/xplangml/3/0)

Ladevorgang

Der Zugriff auf die Datei läuft immer wie folgt ab:

  • Einlesen des Stammelements, prüfen, ob der Typ bekannt ist
  • einmaliges Durchlesen der Datei, ermitteln der Boundingbox, die Epsg wird vom ersten Element verwendet (wenn nicht quickLoad=true ist)

Bei Quickload = false und mit vorhandener Symbolik dauert der Ladevorgang ca. 50ms für die Analyse, welche Elemente aus dem css tatsächlich vorhanden sind und ca. 50ms für das Lesen der Datei, also ca. eine ~1/10 Sekunde.

Bei der Verwendung mit Auflistungen für 40 (typische) XPlan Dateien also ca. 4 Sekunden.

Beispiel

{
"Xplan1": {
   "type": "GmlFile",
   "fileName":"d:\\temp\\test.gml",
   "quickLoad":false
  }
}

Standard-Symbolik (nur für XPlanung)

Für diesen Ebenentyp wird ein Standard-Css gesucht. Dabei wird erst im Projektordner geschaut *1, dann im globalen Ordner*2.

Der Dateiname entspricht dabei dem Element-Typ, für XPlanAuszug entsprechend XPlanAuszug.css. Wird ein eigener Stil angegeben, wird der Standard ignoriert.

Es wird dabei zuerst nach einem Stil entsprechend der XPlan Version geschaut, dann nach einem Allgemeinen.

D.H. : {XPlanAuszug30.css|XPlanAuszug40.css|XPlanAuszug41.css} XPlanAuszug.css

Neben der Suche im lokalen Dateisystem wird auch Online nach einem Css geschaut. Dabei findet ein http Zugriff auf die Domäne webs.idu.de statt (unter Beachtung des Standardproxys des Betriebssystems) .

*1 siehe Element "workingDir" in der Datei .config

*2 siehe Element "workingDir" in der Datei $default.config (wenn leer, dann der Pfad der ausführbaren Datei)

Die Legende ist sehr groß, da alle Elemente enthalten sind. Wenn die Ebene indirekt über Iwan6 geladen wird, wird die Legende bereits beim Laden mit abgerufen.

Sie sollten daher quickLoad nicht mit false angegeben, außer, die Ebene soll wirklich nur für Abfragen verwendet werden.

Implementierungsdetails / Features und Einschränkungen

Die Datei wird bei jedem Zugriff neu eingelesen, ein Caching findet derzeit nicht statt.

Für die Abbildung der Struktur in eine Tabellenansicht werden folgende Spalten für die Quelle definiert:

  • GmlId (Char, 100, UniqueId) wird aus der gml:id des Features verwendet, es wird angenommen, dass der Wert eindeutig ist
  • TypeName (Char, 50): Der Name des Feature-Elementes
  • Position (Geometry): Die Haupt-Geometrie
  • Att (Object, BSON): Alle weiteren Attribute werden in dieser Spalte als Objekt abgebildet

Zusätzliche bei AX_NutzerbezogeneBestandsdatenaktualisierung_NBA

  • Op (Char, 10): "Insert", "Update", "Replace" oder "Delete"

Hinweis: Es wird kein Schema beim Auslesen verwendet, alle Attribute im Objekt sind vom Typ String.


Zuletzt geändert: 19.01.2018 14:52:58 (erstmals erstellt 17.08.2017)