latest
💡 Core Concepts
Erweiterte Ressourceninformationen

Erweiterte Ressourceninformationen (exri)

Erweiterte Ressourceninformationen, Extended Ressource Informations (kurz: exri), sind eine in Terratwin exklusive eingebaut Funktionalität, um Portalinhalte (Layer, WebMaps, ...) aus dem primären Portal um weitere Funktionen und Eigenschaften zu erweitertern. Exri sind nach dem JSON-Standard aufgebaut und haben den gleichen Dateinamen, wie das Element, das erweitert wird.

Exris stehen seit der Version 1.4.2 zur Verfügung

Layer exri

Portalelemente vom Typ Layer (z.B. FeatureLayer) können um verschiedene Funktionen erweitert werden. Diese Funktionen werden aktiv, sobald der entsprechende Layer zur Karte hinzugefügt wird oder eine Karte geöffnet wird, die den Layer enthält.

Allgemeine Layer-Eigenschaften

Ein Layer-exri kann um allgemeine Eigenschaften layerProps erweitert werden, die unabhängig von der Art des Layers sind. Verwenden Sie dazu die einfachen Eigenschaften aus der SDK zu FeatureLayer (opens in a new tab), MapImageLayer (opens in a new tab), ImageryLayer (opens in a new tab) oder anderen Layern, je nach Typ des Layers. Unter Angabe von sublayer können die Eigenschaften auf einen bestimmten Unterlayer angewendet werden. Folgende Eigenschaften bieten sich beispielsweise für einen Featurelayer an:

ParameterBeschreibung
titleDer Titel des Layers, der zur Identifikation in Widgets wie der LayerList verwendet wird.
listModeGibt an, wie der Layer in der LayerList angezeigt werden soll.
opacityDie Deckkraft des Layers.
apiKeyEine Autorisierungszeichenfolge zum Zugriff auf eine Ressource oder einen Dienst.
blendModeMischmodi werden verwendet, um Layer zusammenzuführen und interessante Effekte oder neue Layer zu erzeugen.
customParametersEine Liste benutzerdefinierter Parameter, die an die URL aller vom Layer abgerufenen Ressourcen angehängt werden.
definitionExpressionDie SQL-Where-Klausel, die verwendet wird, um Features auf der Client-Seite zu filtern.
displayFieldDer Name des primären Anzeigefelds des Layers.
elevationInfoLegt fest, wie Features auf der vertikalen Achse (z) platziert werden.
labelsVisibleGibt an, ob Beschriftungen für diesen Layer angezeigt werden sollen.
legendEnabledGibt an, ob der Layer in der Legende enthalten sein wird.
maxScaleDer maximale Maßstab (stärkste Vergrößerung), bei dem der Layer in der Ansicht sichtbar ist.
minScaleDer minimale Maßstab (stärkste Verkleinerung), bei dem der Layer in der Ansicht sichtbar ist.
outFieldsEin Array von Feldnamen aus dem Dienst, die mit jedem Feature einbezogen werden.
popupEnabledGibt an, ob Popups angezeigt werden, wenn Features im Layer angeklickt werden.
visibleGibt an, ob der Layer in der Ansicht sichtbar ist.

In der Version 2.0.1 wurde außerdem das Schlüsselwort nosnap in den allgemeinen Eigenschaften eingeführt, um zu verhindern, dass der Layer beim Zeichnen von Geometrien als Fanglayer verwendet werden kann.

{
	"layerProps": [
		{
			"sublayer": 1,
			"opacity": 0.7,
			"listMode": "hide-children",
			"popupEnabled": false,
			"nosnap": true
		}
	]
}

Viele der layerProps können bereits im Dienst bzw. im Portalelement festgelegt werden und werden automatisch übernommen. Die Konfiguration im Layer-exri überschreibt die Einstellungen im Dienst.

Dynamische Suchfunktion

Der Layer kann als Quelle für das Suchen-Werkzeug dienen. Es können mehrere Suchquellen für denselben Layer oder für unterschiedliche Sublayer konfiguriert werden. Suchquellen müssen entsprechend der API für LayerSearchSource (opens in a new tab) aufgebaut werden und können noch um den Parameter sublayer ergänzt werden, um auf einen Unterlayer eines MapServers oder FeatureServers zu verweisen.

{
	"searchSources": [
		{
			"searchFields": ["bezeichnung"],
			"suggestionTemplate": "{bezeichnung} ({code})",
			"exactMatch": false,
			"outFields": ["bezeichnung", "code"],
			"name": "Radrouten",
			"placeholder": "Radroute suchen z.B. Buckelestour",
			"minSuggestCharacters": 3,
			"popupEnabled": true
		}
	]
}
Beispielkonfiguration und Screenshot für eine Layer-Suche
Beispielkonfiguration und Screenshot für eine Layer-Suche
  • wird kein sublayer angegeben, wird standardmäßig der erste Unterlayer (Index=0) verwendet
  • alle Felder die in searchFields und in suggestionTemplate aufgeführt sind, müssen auch in outFields gelistet werden
  • wenn popupEnabled aktiviert ist, öffnet sich das für den Layer konfigurierte Popup, andernfalls wird eine Markierung gesetzt
  • mit prefix: "%" können Sie eine Suche konfigurieren, die auch nach Teilinhalten im Suchfeld sucht (Enthält-Suche)

Popup Aktionen

Das im Portalelement konfigurierte Popup kann über das Layer-exri um zusätzliche Aktionsschaltflächen erweitert werden. Standardmäßig stehen in Terratwin folgende Aktionen zur Verfügung:

  • Zoomen auf zum Zentrieren auf das Feature
  • Teilen zum Erzeugen und Weitergeben eines Links auf das Feature
  • Drucken zur Erstellung eines Berichts in DIN A4 mit aktuellen Kartenausschnitt und Information aus dem Popup
  • Tabelle zum Öffnen der Attributtabelle

Weitere layerspezifische Aktionen lassen sich über exri realisieren. Es können mehrere Aktionen pro Layer definiert werden. Eine Aktion muss wie folgt aufgebaut werden:

ParameterBeschreibung
sublayerId des Unterlayer. Default: 0
idName der auszuführenden Funktion, z.B. toggleRaster
titleangezeigter Text auf der Aktionsschaltfläche
iconName des Calcite Icons (opens in a new tab)
paramsParameter, die der auszuführenden Funktion übergeben werden sollen
Aktion toggleRaster

Mit toggleRaster können zugehörige Bilddaten eines Objekts zur Anzeige gebracht werden. Diese Funktion ist nützlich, wenn gescannte Pläne oder einzelne Orthofotos zu Features angezeigt werden sollen (z.B. bei Bebauungsplänen oder UAV-Befliegungen).

In den params können Sie einen ArcGIS-Imageservice referenzieren und die Verbindungsfelder definieren. Der ArcGIS-Imageservice muss aus einem Mosaik-Dataset heraus veröffentlicht werden.

ParameterBeschreibung
rasterLayerReferenz auf eine Imageservice. Siehe Referenzieren von Portalelementen
primaryKeyFeldname im Layer, auf den sich das exri bezieht
foreignKeyFeldname im Mosaik-Dataset, das zum Filtern genutzt wird
{
	"popupActions": [
		{
			"sublayer": 0,
			"id": "toggleRaster",
			"title": "Rasterplan anzeigen",
			"icon": "image-segmentation",
			"params": {
				"rasterLayer": {
					"portalUrl": "https://arcgis.com",
					"queryParams": {
						"filter": "id:2fb1bab4122f44f4bb443c17f5732f30"
					}
				},
				"primaryKey": "nummer",
				"foreignKey": "nummer_in_fc"
			}
		}
	]
}

Seit der Version 2.2.1 ist es ebenfalls möglich WMS-Dienste für die Bilddaten zu verwenden. Geben Sie dazu in den params den Typ wms an und definieren Sie die übrigen Parameter wie folgt:

ParameterBeschreibung
rasterLayer.typeErlaubter Wert ist wms
rasterLayer.urlFieldFeldname im Layer, das die WMS-URL enthält
rasterLayer.layerNameField(Optional) Feldname im Layer, das den WMS-Layernamen enthält. Wenn dieser Parameter angegeben wird, hat er Vorrang vor rasterLayer.defaultLayerName.
rasterLayer.defaultLayerName(Optional) Standard-Name des WMS-Layers, der am Endpunkt abgerufen werden soll (wenn rasterLayer.layerNameField nicht angegeben wird). Bei Fehlen beider Parameter wird der Layername rasterplan angewandt.
rasterLayer.filterFieldFeldname im Layer, das zum Filtern genutzt wird
rasterLayer.title(Optional) Titel des WMS-Layers, der im Werkzeug Themen angezeigt wird. Wird dieser Parameter nicht angegeben, wird der Standardtitel Rasterplan: {primaryKey} verwendet.
rasterLayer.customParameters(Optional) Schlüsselwertpaare für benutzerdefinierter Parameter, die an die URL des WMS-Dienstes angehängt werden. Siehe CustomParameters (opens in a new tab)
primaryKeyFeldname im Layer, auf den sich das exri bezieht
{
	"popupActions": [
		{
			"sublayer": 0,
			"id": "toggleRaster",
			"title": "Rasterplan anzeigen",
			"icon": "image-segmentation",
			"params": {
				"rasterLayer": {
					"type": "wms",
					"urlField": "wms_url",
					"defaultLayerName": "bp_planRaster",
					"filterField": "Nummer",
					"titleTemplate": "Bebauungsplan {Name}"
				},
				"primaryKey": "Nummer"
			}
		}
	]
}
Beispielkonfiguration und Screenshot für eine Popup-Aktion
Beispielkonfiguration und Screenshot für eine Popup-Aktion

Popup Inhalte

Mithilfe eines Layer-exri können auch weitere benutzerdefinierte Inhalte zum Popup hinzugefügt werden, die sich nicht über die eingebaute Möglichkeiten zur Konfiguration von Popups (opens in a new tab) realisieren lassen. Auch hier können mehrere Inhalte dynamisch für denselben Layer oder für unterschiedliche sublayer definiert werden.

ParameterBeschreibung
sublayerId des Unterlayer. Default: 0
creatorName der auszuführenden Funktion, z.B. _getXPlanungAttachments
outFieldsFelder, die von der auszuführenden Funktion verwendet werden
paramsParameter, die der auszuführenden Funktion übergeben werden soll
Inhalt getXPlanungAttachments

Die benutzerdefinierte Funktion getXPlanungAttachments ruft über den Terratwin API Service xplanung_docs sämtliche externe Referenzen (opens in a new tab), die in einem XPlanung-GML hinterlegt sind. Geben Sie über params folgende Parameter an:

ParameterBeschreibung
gmlUrlMaskierte URL zur GML-Datei. Es können Platzhalter aus den outFields verwendet werden, um die URL dynamisch zu erstellen.
namespacesSchlüsselwertpaare mit Namensräume, die für das Lesen der Knoten im GML-File erforderlich sind
additionalFiles(Optional) Array von zusätzlichen Dateien, die ebenfalls mit ausgegeben werden sollen. Das Array besteht aus Objekten mit den Eigenschaften url, die eine maskierte URL enthält, und title für den angezeigten Text im Popup.
{
	"popupContents": [
		{
			"sublayer": 1,
			"outFields": ["bp_plan_nummer", "bp_plan_gemeinde", "bp_plan_name"],
			"creator": "getXPlanungAttachments",
			"params": {
				"gmlUrl": "https://gis.stadt-xy.de/dok/Bebauungsplaene/{bp_plan_gemeinde}/{bp_plan_name}.gml",
				"namespaces": {
					"": "http://www.xplanung.de/xplangml/5/0"
				},
				"additionalFiles": [
					{
						"url": "https://gis.stadt-xy.de/dok/Bebauungsplaene/{bp_plan_gemeinde}/{bp_plan_nummer}_TZ.pdf",
						"title": "Zusätzliche Dokumente"
					}
				]
			}
		}
	]
}
Beispielkonfiguration und Screenshot für getXPlanungAttachments
Beispielkonfiguration und Screenshot für getXPlanungAttachments
Inhalt getOwners

Mit der benutzerdefinierten Funktion getOwners werden die Eigentümerinformationen eines Flurstücks abgefragt. Geben Sie über params folgende Parameter an:

ParameterTypBeschreibung
portalItemsObjectReferenz auf Eigentümertabellen
ownerKeyFieldStringName des Schlüsselfelds in der Eigentümertabelle, über das die Verbindung erfolgt
parcelKeyFieldStringName des Schlüsselfelds im Flurstückslayer, über das die Verbindung erfolgt
outFieldsArray<String>Namen der Felder, die ausgegeben werden sollen
orderByFieldsArray<String>Felder für die Sortierung
{
	"popupContents": [
		{
			"sublayer": 0,
			"outFields": ["fsk"],
			"creator": "getOwners",
			"params": {
				"portalItems": {
					"portalUrl": "https://arcgis.com",
					"queryParams": {
						"filter": "typekeywords:service AND group:326b00756efb4455bd7cc005a2c90c45"
					}
				},
				"ownerKeyField": "fsk",
				"parcelKeyField": "fsk",
				"outFields": [
					"blattart",
					"buchungsblatt",
					"lfdnr",
					"buchungsart",
					"anteil",
					"name",
					"anteilsverhaeltnis",
					"geburtsdatum",
					"anschrift",
					"artderrechtsgemeischaft",
					"abrufdatum"
				],
				"orderByFields": ["buchungsblatt", "lfdnr"]
			}
		}
	]
}