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 steht nur die Aktion Zoomen auf im Popup zur Verfügung. 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 Bilddaten eines Mosaik-Datasets gefiltert und 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 params müssen ein Imageservice referenziert werden und die Verbindungsfelder definiert 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"
			}
		}
	]
}
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
primaryKeyEindeutiger Schlüssel im XPlanung-Layer. Feldinhalt muss mit Datei- und Verzeichnisnamen der GML-Datei übereinstimmen.
{
	"popupContents": [
		{
			"sublayer": 0,
			"outFields": ["nummer"],
			"creator": "getXPlanungAttachments",
			"params": {
				"primaryKey": "nummer"
			}
		}
	]
}
Beispielkonfiguration und Screenshot für getXPlanungAttachments
Beispielkonfiguration und Screenshot für getXPlanungAttachments
Inhalt getOwner

Mit der benutzerdefinierten Funktion getOwner 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"
				],
				"orderByFields": ["buchungsblatt", "lfdnr"]
			}
		}
	]
}