Konfiguration
Editierfunktionen zu einer App hinzufügen
Die Auslieferung enthält eine Beispiel-App, die den Einsatz der Editierfunktionen zeigt. |
Um die Editierfunktionen zu einer App hinzuzufügen, fügen Sie zunächst das Bundle advanced-editing
zu Ihrer App hinzu. Ergänzen Sie außerdem die Kartenlayer, die mit map.apps Advanced Editing bearbeitet werden sollen.
Editierbare Kartenlayer zur App hinzufügen
Fügen Sie die Kartenlayer, die mit map.apps Advanced Editing bearbeitbar sein sollen, zur App hinzu. Details hierzu sind in der map.apps Dokumentation auf der Seite Karteninhalt beschrieben.
Das folgende Beispiel zeigt die möglichen Konfigurationen, die an einem Layer vorgenommen werden können. Details sind in der darauffolgenden Tabelle beschrieben.
{
"id": "mylayer",
"type": "AGS_FEATURE",
"url": ".../FeatureServer/0",
"editingEnabled": true,
"advancedEditing": {
"allowSnapping": true,
"allowGeometryEditing": true,
"allowAttributeEditing": true,
"allowAttachmentEditing": true,
"allowAdd": true,
"allowDelete": false,
"allowUpdate": true
}
}
Name | Beschreibung |
---|---|
|
Um einen editierbaren Layer zwar in der App zu nutzen, aber nicht zum Editieren anzubieten, setzen Sie die Option |
|
|
|
Standardmäßig werden alle Layer, auf denen ein Fangen (Snapping) möglich ist, fürs Snapping genutzt.
Um einen Layer vom Snapping auszuschließen, setzen Sie allowSnapping auf |
|
Legt fest, ob der Reiter Geometrie angezeigt wird. |
|
Legt fest, ob der Reiter Attribute angezeigt wird. |
|
Legt fest, ob der Reiter Datei-Anhänge angezeigt wird. |
|
Legt fest, ob neue Objekte in diesem Layer erstellt werden können. Diese Einstellung greift nur, wenn |
|
Legt fest, ob bestehende Objekte dieses Layers bearbeitet werden können. Diese Einstellung greift nur, wenn |
|
Legt fest, ob bestehende Objekte aus diesem Layer gelöscht werden können. Diese Einstellung greift nur, wenn |
Durch die Konfiguration von allowAdd , allowUpdate und allowDelete werden UI-Elemente ausgeblendet.
Es erfolgt hiermit keine serverseitige Absicherung des Layers.
D.h. über die REST-Schnittstelle des Layers könnten durch mutwilligen Zugriff die definierten Einschränkungen umgangen werden.
|
Die hier aufgeführten clientseitigen Einschränkungen können nur dann sinnvoll angewendet werden, wenn die jeweilige Operation am Layer serverseitig erlaubt ist. Eine serverseitige Einschränkung des Layers kann nicht durch die hier genannten Konfigurationen aufgehoben werden. |
Editieraktionen mit den Editierwerkzeugen (Tools)
Für den Einstieg in einer Editiersitzung bietet map.apps Advanced Editing drei grundlegende Werkzeuge an. Fügen Sie die gewünschten Werkzeuge (map.apps Tools) zu einem Toolset in Ihrer App hinzu:
Funktion | Werkzeug-ID |
---|---|
Neues Objekt erfassen |
|
Objekt bearbeiten |
|
Objekte zusammenführen |
|
Allgemeine Hinweise zur Konfiguration von Werkzeugen sind im Abschnitt Werkzeuge der map.apps Dokumentation beschrieben.
Editieraktion in Popups
Zusätzlich zu den oben beschriebenen Editierwerkzeugen kann die Editierung auch durch ein Werkzeug in einem Popup gestartet werden.
Ergänzen Sie dazu die Eigenschaft "customActions": ["advanced-editing-edit-object"]
in der Konfiguration des jeweiligen Kartenlayers wie in folgendem Beispiel:
{
"map-init": {
"Config": {
"basemaps": [],
"map": {
"layers": [
{
"id": "status",
"url": "https://www.example.com/arcgis/rest/services/mapapps/stoerung/FeatureServer/1",
"type": "AGS_FEATURE",
"popupTemplate": {
"customActions": [
"advanced-editing-edit-object"
]
}
}
]
}
}
}
}
Editieraktionen im Result Center
Sie können das Result Center zusammen mit map.apps Advanced Editing nutzen, um Objekte tabellarisch anzuzeigen und zu editieren oder zu löschen. Fügen Sie dazu das Bundle result-ui
zu Ihrer App hinzu.
Objekt bearbeiten
Für Objekte auf editierbaren Layern kann eine Editiersitzung aus dem Result Center heraus gestartet werden. Klicken Sie dazu auf die Schaltfläche mit den drei Punkten in der Zeile des Objekts, das Sie bearbeiten möchten, und anschließend auf Editieren.
Das Result Center wird minimiert, sobald die Editierung gestartet wird.
Mehrere Objekte in einem Schritt löschen
Um mehrere Objekte in einem Schritt zu löschen, gehen Sie so vor:
1. Selektieren Sie den Kartenausschnitt mit den gewünschten Objekten mithilfe der map.apps-Funktion Räumliche Auswahl (selection-ui
Bundle). Daraufhin öffnet sich das Result Center.
2. Wählen Sie im Result Center die Objekte aus, die Sie löschen möchten. Klicken Sie dazu auf die vorangestellten Checkboxen.
3. Klicken Sie auf die Schaltfläche Objekte löschen.
Editierung in der Esri Feature Table
Die Esri Feature Table ist ein leistungsstarkes Werkzeug zur Verwaltung und Bearbeitung von Objekten in einer tabellarischen Ansicht. Sie eignet sich besonders für die effiziente Bearbeitung großer Datenmengen und das Durchführen von Massenoperationen. Die Feature Table bietet folgende zentrale Funktionen:
-
Anzeige aller Objekte eines Layers in einer Tabelle
-
Attributwerte direkt in der Tabelle bearbeiten (Inline Editing)
-
Einzelne oder mehrere Objekte gleichzeitig löschen
-
Anhänge anzeigen, hinzufügen und verwalten
-
Verwandte Datensätze anzeigen, hinzufügen, bearbeiten und löschen
-
Objekte nach Attributen sortieren
-
Tabellenspalten anpassen (anzeigen/ausblenden, Reihenfolge ändern)
-
Objekte als CSV-Datei exportieren
Die Esri Feature Table ist vollständig in map.apps Advanced Editing integriert und berücksichtigt die Bearbeitungsrechte und Konfiguration Ihrer Layer. |
So fügen Sie die Esri Feature Table zu Ihrer App hinzu
-
Fügen Sie das Bundle
advanced-editing-feature-table
zur App-Konfiguration hinzu. -
Stellen Sie sicher, dass die gewünschten Layer als editierbar konfiguriert sind (siehe Editierbare Kartenlayer zur App hinzufügen).
So öffnen Sie die Esri Feature Table
-
Klicken Sie in Ihrer App auf die Schaltfläche Karteninhalt.
-
Klicken Sie neben dem gewünschten Layer auf die Schaltfläche mit den drei Punkten (⋮).
-
Wählen Sie im Menü Objekttabelle aus. Die Esri Feature Table öffnet sich für diesen Layer.
-
Selektieren Sie mindestens eine Zeile in der Result Center Tabelle.
-
Klicken Sie auf die Schaltfläche Objekte editieren. Die ausgewählten Features werden nun in der Feature Table geöffnet.
Konfiguration und Best Practices
-
Detaillierte Konfigurationsmöglichkeiten finden Sie in der README.md des Bundles
advanced-editing-feature-table
. -
Wenn Sie map.apps Advanced Editing in einer map.apps Umgebung vor Version 4.19.3 einsetzen, müssen Sie Ihre Content Security Policy anpassen, um Inline-Webfonts zuzulassen. Andernfalls werden einige Icons in der Feature Table nicht korrekt angezeigt. Ergänzen Sie dazu folgende Direktive in der Eigenschaft
security.responseHeaders.apps
:
security.responseHeaders.apps=Referrer-Policy:strict-origin-when-cross-origin,Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-eval' https: http:; worker-src 'self' blob:; child-src 'self' blob:; connect-src 'self' https: http: wss: ws:; frame-src 'self' https: http:; img-src 'self' data: blob: https: http:; style-src 'self' 'unsafe-inline'; base-uri 'self'; font-src 'self' data:; form-action 'self'
Editieroberflächen anpassen
Wenn Sie ein Objekt mit Advanced Editing bearbeiten, öffnet sich ein Dialogfenster mit verschiedenen Registerkarten für Geometrie, Attribute und Anhänge. Sie können festlegen, welche dieser Registerkarten angezeigt werden sollen. Für die Konfiguration stehen folgende Parameter zur Verfügung:
Name | Beschreibung |
---|---|
|
Legt fest, ob der Reiter Geometrie angezeigt wird. |
|
Legt fest, ob der Reiter Attribute angezeigt wird. |
|
Legt fest, ob der Reiter Datei-Anhänge angezeigt wird. |
Das folgende Beispiel zeigt die Konfiguration mit den Standardwerten. In diesem Beispiel werden für alle Kartenlayer alle drei Registerkarten angezeigt.
{
"advanced-editing": {
"Config": {
"allowGeometryEditing": true,
"allowAttributeEditing": true,
"allowAttachmentEditing": true
}
}
}
Editieroberflächen für einzelne Layer anpassen
Es kann nicht nur global eingestellt werden, ob die Registerkarten für Geometrie, Attribute und Anhänge angezeigt werden. Dies ist auch für einzelne Layer möglich. Lesen Sie dafür den Abschnitt Kartenlayer für die Editierung zur App hinzufügen.
Dialog zur Geometrie-Editierung anpassen
Für die Konfiguration stehen folgende Parameter zur Verfügung:
Name | Beschreibung |
---|---|
|
Legt fest, ob die Werkzeuge zum Zeichnen von temporären Hilfsgeometrien angezeigt werden. |
|
Legt fest, ob die Steuerung der Konstruktionshilfen angezeigt wird. |
Das folgende Beispiel zeigt die Konfiguration mit den Standardwerten:
{
"advanced-editing": {
"Config": {
"showSketching": true,
"showSnappingControls": true
}
}
}
Dialog zur Attributeditierung anpassen
Um die Eingabemasken zur Attributeditierung anzupassen, können sog. FormTemplates genutzt werden, die am jeweiligen Feature Layer definiert werden. Dadurch kann eine Auswahl der angezeigten Attribute, deren Reihenfolge und Gruppierung festgelegt werden.
Das folgende Beispiel zeigt die Definition eines FormTemplate
:
{
"map-init": {
"Config": {
"basemaps": [],
"map": {
"layers": [
{
"id": "status",
"url": "https://www.example.com/arcgis/rest/services/mapapps/stoerung/FeatureServer/1",
"type": "AGS_FEATURE",
"title": "Layer with custom formTemplate",
"formTemplate": {
"title": "Bürger melden Störungen",
"description": "Helfen Sie dabei, unsere Stadt schön zu halten!",
"elements": [
{
"type": "group",
"label": "Art der Störung",
"description": "Im ersten Schritt, geben Sie bitte die Art der Störung ein.",
"elements": [
{
"type": "field",
"fieldName": "art",
"label": "Was möchten Sie melden?"
}
]
},
{
"type": "group",
"label": "Details zur Erfassung",
"description": "Geben Sie in diesem Schritt optional weitere Informationen ein.",
"elements": [
{
"type": "field",
"fieldName": "details",
"label": "Details zur Meldung"
},
{
"type": "field",
"fieldName": "zeitpunkt",
"label": "Zeitpunkt der Meldung"
}
]
}
]
}
}
]
}
}
}
}
Verhalten beim Editieren
Verschieben von Objekten verhindern
Um zu verhindern, dass Objekte beim Zeichnen von Geometrien verschoben werden können, wenden Sie die folgende Konfiguration an:
{
"advanced-editing": {
"Config": {
"allowMovingObject": true
}
}
}
Eine Verschiebung einzelner Stützpunkte der Geometrie ist weiterhin möglich.
Fangen (Snapping)
Fangen auf Grundkarten erlauben
Um das Fangen (Snapping) auf Grundkarten zu ermöglichen, verwenden Sie die folgende Konfiguration:
{
"advanced-editing": {
"Config": {
"allowBasemapSnapping": true
}
}
}
Fangtoleranz
Um den Mindestabstand zu einer Geometrie beim Objektfang zu ändern, verwenden Sie folgende Konfiguration:
{
"advanced-editing": {
"Config": {
"snappingDistance": 6
}
}
}
Der Standardwert beträgt 6 Pixel.
Fangen rechter Winkel und paralleler Linien abschalten
Beim Zeichnen von Linien oder Flächen werden standardmäßig rechte Winkel und parallele Linien zu bereits gezeichneten Segmenten angezeigt und gefangen. Um dies zu verhindern, verwenden Sie folgende Konfiguration:
{
"advanced-editing": {
"Config": {
"selfSnappingEnabled": false
}
}
}
Weitere Informationen zur Konfiguration können der Bundle-Dokumentation entnommen werden. |