Editieren

Benötigtes Bundle: editing

Editier-Funktion zu einer App hinzufügen

Um das Bearbeiten von Kartenobjekten in einer App zu ermöglichen, müssen ein oder mehrere ArcGIS Feature Layer zur App hinzugefügt werden die das Bearbeiten von Objekten erlauben.

Im nächsten Schritt muss das Werkzeug zum Editieren einem Werkzeugset hinzugefügt werden, siehe Konfiguration von Werkzeugen. Anschließend steht ein Dialog zur Verfügung der das Bearbeiten bestehender und Hinzufügen neuer Geobjekte erlaubt. Bestehende Geoobjekte können - wenn der Dienst dies erlaubt - über den Schritt Feature bearbeiten gelöscht werden.

editing

Konfiguration

Für die Konfiguration stehen folgende Parameter zur Verfügung:

allowedWorkflows

Gibt an, welche Workflows gestartet werden können.

Standardwert: ["create","update"]

allowFeatureTemplateFiltering

Legt fest, ob ein Text-Feld zum Filtern der Vorlagen angezeigt wird.

Erlaubte Werte: true, false
Standardwert: true

groupFeatureTemplatesBy

Gibt an, wie die Vorlagen gruppiert werden.

Erlaubte Werte:

layer

Vorlagen werden nach dem Layer gruppiert zu dem Sie gehören.

geometry

Vorlagen werden nach der Art ihrer Geometrie gruppiert (Punkte, Linien, Flächen)

none

Alle Vorlagen werden ohne Gruppierung aufgelistet.

initialGeometryEditMode

Legt fest, welcher Bearbeitungsmodus beim Bearbeiten von Geometrien aktiviert ist.

Erlaubte Werte:

transform

erlaubt das Verschieben, Ändern der Größe und Drehen einer Geometrie.

reshape

erlaubt das Verschieben einer Geometrie sowie das Verschieben oder Hinzufügen von Stützpunkten einer Geometrie.

move

erlaubt das Verschieben einer Geometrie, ohne deren Stützpunkte, Größe oder Rotation zu ändern.

toggleGeometryEditModeOnClick

Legt fest, ob durch Klick auf die Geometrie zwischen den Bearbeitungsmodi gewechselt wird.

snappingEnabled

Legt fest, ob beim Editieren das Snapping (Fangen) auf vorhandenen Geometrien aktiviert ist.

{
    "editing": {
        "Config": {
            "allowedWorkflows": [
                "create",
                "update"
            ],
            "allowFeatureTemplateFiltering": true,
            "groupFeatureTemplatesBy": "layer",
            "initialGeometryEditMode": "reshape",
            "toggleGeometryEditModeOnClick": true,
            "snappingEnabled": true
        }
    }
}

Dialog zur Attribut-Editierung anpassen

Um die Eingabemasken zur Attribut-Editierung anzupassen, können sog. FormTemplates genutzt werden, die am jeweiligen Feature Layer definiert werden müssen. Dadurch kann eine Auswahl der angezeigten Attribute, deren Reihenfolge und Gruppierung festgelegt werden.

Das folgende Beispiel zeigt die Definition eines FormTemplates:

{
    "map-init": {
        "Config": {
            "basemaps": [],
            "map": {
                "layers": [
                    {
                        "id": "status",
                        "url": "https://services.conterra.de/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?",
                                            "domain": {
                                                "type": "coded-value",
                                                "codedValues": [
                                                    {
                                                        "name": "Laterne/Beleuchtung",
                                                        "code": 1
                                                    },
                                                    {
                                                        "name": "Ampel",
                                                        "code": 2
                                                    }
                                                ]
                                            },
                                            "input": {
                                                "type": "radio-buttons",
                                                "showNoValueOption": false
                                            }
                                        }
                                    ]
                                },
                                {
                                    "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"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            }
        }
    }
}
Weitere Informationen zur Konfiguration können der Bundle-Dokumentation entnommen werden.