Export-Konfiguration

Die Konfigurationseinstellungen für den export Befehl sind unterteilt in die Abschnitte in "exportOptions" für allgemeine Exporteinstellungen und "writeOptions" für Schreibeinstellungen für Ausgabedateien und formatspezifische Optionen.

Name und Anwendungszweck der JSON-Konfigurationsoptionen entsprechen weitgehend den Kommandozeilenoptionen. Sofern zutreffend, verweisen die Beschreibungen der JSON-Optionen daher auf die Dokumentation der entsprechenden Kommandozeilenoptionen für weitere Informationen.

Exportoptionen

Das folgende Beispiel veranschaulicht die JSON-Struktur für die Exportoptionen.

{
  "exportOptions": {
    "numberOfThreads": 4,
    "targetSrs": { (1)
      "srid": 4326,
      "identifier": "http://www.opengis.net/def/crs/EPSG/0/4326"
    },
    "affineTransform": [0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0],
    "lodOptions": {
      "lods": ["2","3"],
      "mode": "minimum"
    },
    "appearanceOptions": {
      "exportAppearances": true,
      "themes": ["foo","bar"],
      "numberOfTextureBuckets": 10
    },
    "query": {...},
    "validityOptions": {...},
    "tiling": {...}
  }
}
1 Entweder "srid", "identifier" oder beide verwenden, um das Ziel-CRS zu definieren.

Allgemeine Exportoptionen

Eigenschaft Beschreibung Standardwert

"numberOfThreads"

Anzahl der Threads für die parallele Verarbeitung.

"targetSrs"

Legt das CRS für die Umprojektion von Geometrien während des Exports fest. Entweder "srid", "identifier" oder beide verwenden, um das Ziel-CRS zu definieren.

"affineTransform"

Koordinaten mit einer 3x4-Matrix im Row-Major-Format transformieren. Die Matrix-Koeffizienten werden als Array angegeben.

"lodOptions"

Beinhaltet ein Array "lods" und einen "mode", um festzulegen, ob eine passende LoD-Repräsentation eines Features behalten ("keep", Standard), entfernt ("remove") oder nur die jeweils niedrigste ("minimum") oder höchste ("maximum") LoD-Stufe behalten werden soll.

"appearanceOptions"

Das "themes" Array beschränkt den Export von Appearances basierend auf ihrem <theme> Attribut. Um alle Appearances zu ignorieren, kann das Attribut "exportAppearances" auf false gesetzt werden (Standard: true). Mit der Option "numberOfTextureBuckets" können Texturbilder in Unterordnern organisiert werden (Standard: 0).

Abfrageoptionen

Das Feld "query" ist ein Container-Objekt für die folgenden Abfrage- und Filteroptionen.

{
  "query": {
    "featureTypes": [ (1)
      {
        "name": "bldg:Building"
      },
      {
        "name": "Road",
        "namespace": "http://3dcitydb.org/3dcitydb/transportation/5.0"
      }
    ],
    "filter": {
      "op": "s_intersects",
      "args": [
        {
          "property": "core:envelope"
        },
        {
          "bbox": [10.0,10.0,20.0,20.0]
        }
      ]
    },
    "filterSrs": { (2)
      "srid": 4326,
      "identifier": "http://www.opengis.net/def/crs/EPSG/0/4326"
    },
    "countLimit": {
      "limit": 1000,
      "startIndex": 20
    },
    "lodFilter": {
      "lods": ["2","3"],
      "mode": "or",
      "searchDepth": 1
    },
    "sorting": {
      "sortBy": [
        {
          "property": "core:objectId",
          "sortOrder": "desc"
        }
      ]
    }
  }
}
1 Das "name" Attribut ist verpflichtend. Um Mehrdeutigkeiten zu vermeiden, kann entweder das Format "prefix:name" mit dem Namespace-Alias als Präfix verwendet oder der vollständige Namespace als "namespace" angegeben werden.
2 Entweder "srid", "identifier" oder beide verwenden, um das Ziel-CRS zu definieren.
Eigenschaft Beschreibung Standardwert

"featureTypes"

Array von JSON-Objekten, die die zu verarbeitenden Feature-Typen angeben. Jedes Objekt muss den "name" des Feature-Typs enthalten. Um Mehrdeutigkeiten zu vermeiden, kann entweder das Format "prefix:name" mit dem Namespace-Alias als Präfix verwendet oder der vollständige Namespace als "namespace" angegeben werden.

"filter"

Ein CQL2-Filterausdruck, kodiert als CQL2-Text oder JSON.

"filterSrs"

Gibt das CRS für Filtergeometrien an, das sich vom CRS der VCDB unterscheidet. Entweder "srid", "identifier" oder beide verwenden, um das CRS zu definieren.

"countLimit"

Mit "limit" wird die maximale Anzahl der zu exportierenden Features festgelegt, und das Attribut "startIndex" definiert den 0-basierten Index des ersten Features innerhalb der Ergebnismenge, mit welchem der Export beginnen soll.

"lodFilter"

Beinhaltet ein Array "lods" und einen "mode", um Features nach ihrem LoD zu filtern: für "or" (Standard) genügt bereits eine passende LoD-Stufe, während "and" alle LoD-Stufen erfordert. Mit "searchDepth" wird die Anzahl der Ebenen von Subfeatures festgelegt, die nach passenden LoDs durchsucht werden (Standard: 0).

"sorting"

Array von "sortBy" Objekten zur Sortierung der Ausgabe nach einer Feature-Eigenschaft ("property", angegeben als JSON-Pfad) in der angegebenen Sortierreihenfolge ("sortOrder"): "asc" (Standard) für aufsteigend oder "desc" für absteigend.

Gültigkeitsoptionen

Das Feld "validityOptions" ist ein Container-Objekt für das Filtern von Features basierend auf ihrer Gültigkeit.

{
  "validityOptions": {
    "mode": "valid",
    "reference": "database",
    "at": "2018-07-01",
    "lenient": false
  }
}
Eigenschaft Beschreibung Standardwert

"mode"

Verarbeitung von Feature basierend auf ihrer Gültigkeit: valid, invalid, all.

valid

"at"

Gültigkeit zu einem bestimmten Zeitpunkt prüfen. Das Zeitformat muss als <YYYY-MM-DD> oder <YYYY-MM-DDThh:mm:ss[(+|-)hh:mm]> angegeben werden.

"reference"

Referenz für die Gültigkeitszeit: database, realWorld.

database

"lenient"

Unvollständige Gültigkeitsintervalle von Features ignorieren.

false

Kachelungsoptionen

Das Feld "tiling" ist ein Container-Objekt für die Definition gekachelter Exporte.

{
  "tiling": {
    "extent": {
      "coordinates": [10.0,10.0,20.0,20.0],
      "srs": { (1)
        "srid": 4326,
        "identifier": "http://www.opengis.net/def/crs/EPSG/0/4326"
      }
    },
    "tileMatrixOrigin": "topLeft",
    "scheme": {...}
  }
}
1 Entweder "srid", "identifier" oder beide verwenden, um das Ziel-CRS zu definieren.
Eigenschaft Beschreibung Standardwert

"extent"

Definiert eine 2D Bounding-Box als Kachelungsausdehnung mithilfe eines "coordinates" Arrays für den linken unteren und rechten oberen Eckpunkt. Wenn die Koordinaten nicht das CRS der VCDB verwenden, kann ein anderes "srs" über die Attribute "srid" oder "identifier" angegeben werden.

automatisch berechnet

"tileMatrixOrigin"

Ursprung der Kachel-Indizes: topLeft, bottomLeft.

topLeft

Das Feld "scheme" ist ein Objekt, das das Kachelungsschema definiert, wobei die Eigenschaft "type" das verwendete Schema angibt.

  • Dimension

  • Matrix

{
  "scheme": {
    "type": "Dimension",
    "width": {
      "value": 2.0,
      "unit": "km"
    },
    "height": {
      "value": 2.0,
      "unit": "km"
    }
  }
}
Eigenschaft Beschreibung Standardwert

"type"

"Dimension" (fest vorgegeben).

"width"

Legt die Breite jeder Kachel über das Attribut "value" fest. Wird die "unit" weggelassen, wird die Einheit des Datenbank-CRS verwendet.

"height"

Legt die Höhe jeder Kachel über das Attribut "value" fest. Wird die "unit" weggelassen, wird die Einheit des Datenbank-CRS verwendet.

{
  "scheme": {
    "type": "Matrix",
    "columns": 10,
    "rows": 20
  }
}
Eigenschaft Beschreibung Standardwert

"type"

"Matrix" (fest vorgegeben).

"columns"

Gibt die Anzahl der Spalten (columns) für das resultierende Kachelgitter an.

1

"rows"

Gibt die Anzahl der Zeilen (rows) für das resultierende Kachelgitter an.

1

Schreiboptionen

Die JSON-Struktur für die Konfiguration der Schreiboptionen für Ausgabedateien ist unten dargestellt. Formatspezifische Einstellungen werden innerhalb des Container-Objekts "formatOptions" bereitgestellt, wobei der Name des Ausgabeformats als Schlüssel für die entsprechenden Einstellungen verwendet wird.

Formatspezifische Optionen müssen nur für die Dateiformate angegeben werden, die auch den Ausgabedateien entsprechen.
{
  "writeOptions": {
    "failFast": false,
    "numberOfThreads": 4,
    "tempDirectory": "/path/to/temp",
    "encoding": "UTF-8",
    "srsName": "http://www.opengis.net/def/crs/EPSG/0/25832",
    "formatOptions": {
      "CityGML": {...},
      "CityJSON": {...}
    }
  }
}

Allgemeine Schreiboptionen

Eigenschaft Beschreibung Standardwert

"failFast"

Bei Fehlern sofort beenden.

false

"numberOfThreads"

Anzahl der Threads für die parallele Verarbeitung.

"tempDirectory"

Temporäre Dateien in diesem Verzeichnis speichern.

"encoding"

Kodierung, die für die Ausgabedatei verwendet wird.

"srsName"

Name des CRS, der in der Ausgabedatei verwendet werden soll.

CityGML-Optionen

Das Feld "CityGML" ist ein Container-Objekt für CityGML-spezifische Formatoptionen.

{
  "CityGML": {
    "version": "3.0",
    "prettyPrint": true,
    "addressMode": "columnsFirst",
    "xslTransforms": [
      "/path/to/myFirstStylesheet.xsl",
      "/path/to/mySecondStylesheet.xsl"
    ],
    "useLod4AsLod3": false,
    "mapLod0RoofEdge": false,
    "mapLod1MultiSurfaces": false
  }
}
Eigenschaft Beschreibung Standardwert

"version"

CityGML-Version: 3.0, 2.0, 1.0.

3.0

"prettyPrint"

Ausgabedatei formatieren und einrücken.

true

addressMode

Gibt an, wie Adressen basierend auf der ADDRESS Tabelle aufgebaut werden:

  • columnsOnly: Nur die Inhalte der Tabellenspalten verwenden.

  • columnsFirst: Tabellenspalten bevorzugen, ansonsten auf content Blob zurückgreifen.

  • xalSourceOnly: Nur Adress-Blob aus der content Spalte verwenden.

  • xalSourceFirst: Den content Blob bevorzugen, ansonsten auf Tabellenspalten zurückgreifen.

columnsFirst

"xslTransforms"

Ein Array von XSLT-Stylesheets zur Transformation der Ausgabe, referenziert durch Dateiname und Pfad (absolut oder relativ). Die Stylesheets werden in der angegebenen Reihenfolge angewendet.

"useLod4AsLod3"

Verwende LoD4 als LoD3 und ersetze bestehende LoD3 Geometrien.

false

"mapLod0RoofEdge"

Bilde LoD0 Roof-Edge Geometrien auf Dachflächen ab.

false

"mapLod1MultiSurfaces"

Bilde LoD1 Multi-Surfaces auf generische thematische Begrenzungsflächen ab.

false

CityJSON-Optionen

Das Feld "CityJSON" ist ein Container-Objekt für CityJSON-spezifische Formatoptionen.

{
  "CityJSON": {
    "version": "2.0",
    "jsonLines": true,
    "prettyPrint": false,
    "htmlSafe": false,
    "vertexPrecision": 3,
    "templatePrecision": 3,
    "textureVertexPrecision": 7,
    "transformCoordinates": true,
    "replaceTemplateGeometries": false,
    "useMaterialDefaults": true,
    "fallbackTheme": "unnamed",
    "useLod4AsLod3": false,
    "writeGenericAttributeTypes": false
  }
}
Eigenschaft Beschreibung Standardwert

"version"

CityJSON-Version: 2.0, 1.1, 1.0.

2.0

"jsonLines"

Ausgabe als CityJSON Text Sequence im JSON Lines Format. Diese Option erfordert CityJSON 1.1 oder höher.

true

"prettyPrint"

Ausgabedatei formatieren und einrücken.

false

"htmlSafe"

Gibt JSON aus, das sicher in HTML eingebettet werden kann.

false

"vertexPrecision"

Anzahl der Nachkommastellen für Geometriekoordinaten.

3

"templatePrecision"

Anzahl der Nachkommastellen für Template-Koordinaten.

3

"textureVertexPrecision"

Anzahl der Nachkommastellen für Texturkoordinaten.

7

"transformCoordinates"

Umwandlung von Koordinaten in Ganzzahlen beim Export nach CityJSON 1.0.

true

"replaceTemplateGeometries"

Ersetzt Template-Geometrien durch Realwelt-Koordinaten.

false

"useMaterialDefaults"

Name des CRS, der in der Ausgabedatei verwendet werden soll.

true

"fallbackTheme"

Legt ein Fallback-Theme für Appearances fest, das verwendet wird, wenn das theme Attribut in der Datenbank nicht belegt ist.

unnamed

"writeGenericAttributeTypes"

Fügt der CityJSON-Datei ein zusätzliches Root-Attribut hinzu, das die generischen Attribute zusammen mit ihren CityGML-Datentypen auflistet.

false

useLod4AsLod3

Verwende LoD4 als LoD3 und ersetze bestehende LoD3 Geometrien.

false