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 ,
MapImageLayer ,
ImageryLayer 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:
| Parameter | Beschreibung |
|---|---|
title | Der Titel des Layers, der zur Identifikation in Widgets wie der LayerList verwendet wird. |
listMode | Gibt an, wie der Layer in der LayerList angezeigt werden soll. |
opacity | Die Deckkraft des Layers. |
apiKey | Eine Autorisierungszeichenfolge zum Zugriff auf eine Ressource oder einen Dienst. |
blendMode | Mischmodi werden verwendet, um Layer zusammenzuführen und interessante Effekte oder neue Layer zu erzeugen. |
customParameters | Eine Liste benutzerdefinierter Parameter, die an die URL aller vom Layer abgerufenen Ressourcen angehängt werden. |
definitionExpression | Die SQL-Where-Klausel, die verwendet wird, um Features auf der Client-Seite zu filtern. |
displayField | Der Name des primären Anzeigefelds des Layers. |
elevationInfo | Legt fest, wie Features auf der vertikalen Achse (z) platziert werden. |
labelsVisible | Gibt an, ob Beschriftungen für diesen Layer angezeigt werden sollen. |
legendEnabled | Gibt an, ob der Layer in der Legende enthalten sein wird. |
maxScale | Der maximale Maßstab (stärkste Vergrößerung), bei dem der Layer in der Ansicht sichtbar ist. |
minScale | Der minimale Maßstab (stärkste Verkleinerung), bei dem der Layer in der Ansicht sichtbar ist. |
outFields | Ein Array von Feldnamen aus dem Dienst, die mit jedem Feature einbezogen werden. |
popupEnabled | Gibt an, ob Popups angezeigt werden, wenn Features im Layer angeklickt werden. |
visible | Gibt 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
layerPropskö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
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
}
]
}
- wird kein
sublayerangegeben, wird standardmäßig der erste Unterlayer (Index=0) verwendet - alle Felder die in
searchFieldsund insuggestionTemplateaufgeführt sind, müssen auch inoutFieldsgelistet werden - wenn
popupEnabledaktiviert 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 aufzum Zentrieren auf das FeatureTeilenzum Erzeugen und Weitergeben eines Links auf das FeatureDruckenzur Erstellung eines Berichts in DIN A4 mit aktuellen Kartenausschnitt und Information aus dem PopupTabellezum Ö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:
| Parameter | Beschreibung |
|---|---|
sublayer | Id des Unterlayer. Default: 0 |
id | Name der auszuführenden Funktion, z.B. toggleRaster |
title | angezeigter Text auf der Aktionsschaltfläche |
icon | Name des Calcite Icons |
params | Parameter, 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.
| Parameter | Beschreibung |
|---|---|
rasterLayer | Referenz auf eine Imageservice. Siehe Referenzieren von Portalelementen |
primaryKey | Feldname im Layer, auf den sich das exri bezieht |
foreignKey | Feldname 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"
}
}
]
}
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 realisieren lassen. Auch hier können mehrere Inhalte
dynamisch für denselben Layer oder für unterschiedliche sublayer definiert werden.
| Parameter | Beschreibung |
|---|---|
sublayer | Id des Unterlayer. Default: 0 |
creator | Name der auszuführenden Funktion, z.B. _getXPlanungAttachments |
outFields | Felder, die von der auszuführenden Funktion verwendet werden |
params | Parameter, 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 , die in einem XPlanung-GML hinterlegt sind. Geben Sie über
params folgende Parameter an:
| Parameter | Beschreibung |
|---|---|
primaryKey | Eindeutiger 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"
}
}
]
}
Inhalt getOwners
Mit der benutzerdefinierten Funktion getOwners werden die Eigentümerinformationen eines Flurstücks abgefragt. Geben Sie über params folgende Parameter an:
| Parameter | Typ | Beschreibung |
|---|---|---|
portalItems | Object | Referenz auf Eigentümertabellen |
ownerKeyField | String | Name des Schlüsselfelds in der Eigentümertabelle, über das die Verbindung erfolgt |
parcelKeyField | String | Name des Schlüsselfelds im Flurstückslayer, über das die Verbindung erfolgt |
outFields | Array<String> | Namen der Felder, die ausgegeben werden sollen |
orderByFields | Array<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"]
}
}
]
}