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 dem Nutzer 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:

Name Beschreibung

allowedWorkflows

Gibt an, welche Workflows vom Nutzer gestartet werden können. Standardwert: ["create","update"]

allowFeatureTemplateFiltering

Legt fest, ob dem Nutzer ein Text-Feld zum Filtern der Vorlagen angezeigt wird. Standardwert: true

groupFeatureTemplatesBy

Gibt an, wie die Vorlagen gruppiert werden. Mögliche Werte sind

  • 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. Mögliche Werte sind

  • 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 der Nutzer durch Klick auf die Geometrie zwischen den Bearbeitungsmodi wechseln darf.

{
    "editing": {
        "Config": {
            "allowedWorkflows": [
                "create",
                "update"
            ],
            "allowFeatureTemplateFiltering": true,
            "groupFeatureTemplatesBy": "layer",
            "initialGeometryEditMode": "reshape",
            "toggleGeometryEditModeOnClick": 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?"
                                        }
                                    ]
                                },
                                {
                                    "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.