Konfiguration

Editier-Funktionen zu einer App hinzufügen

Die Auslieferung enthält eine Beispiel-App, die den Einsatz der Editier-Funktionen zeigt.

Um die Editier-Funktionen zu einer App hinzuzufügen, fügen Sie das Bundle advanced-editing zu Ihrer App hinzu und ergänzen Sie die im Folgenden beschriebenen Werkzeuge oder Aktionen in einem Werkzeugset, Popup oder Result Center.

Werkzeuge

Fügen Sie die gewünschten Werkzeuge zur App hinzu:

Funktion Werkzeug-ID

Neues Objekt erfassen

advancedEditingAddFeatureTool

Objekt bearbeiten

advancedEditingUpdateFeatureTool

Objekte zusammenführen

advancedEditingMergeFeaturesTool

Allgemeine Hinweise zur Konfiguration von Werkzeugen sind im Abschnitt Werkzeuge der map.apps Dokumentation beschrieben.

Editier-Aktion in Popups

Um Nutzenden die Möglichkeit zu geben, die Editierung eines bestehenden Objekts aus einem Popup heraus zu starten, ergänzen Sie die Custom Action advanced-editing-edit-object in der Konfiguration des jeweiligen Karten-Layers 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"
                            ]
                        }
                    }
                ]
            }
        }
    }
}

Editier-Aktionen im Result Center

Objekte aus editierbaren Layern können aus dem Result Center heraus bearbeitet werden, sobald die Bundles result-ui und advanced-editing in einer App verwendet werden. Das Result Center wird minimiert, sobald die Editierung über eine sog. Row-Action gestartet wird.

result ui action

Karten-Layer

Fügen Sie die Layer, die zur Editierung genutzt werden sollen zur App hinzu. Details hierzu sind im Abschnitt Karteninhalt der map.apps Dokumentation beschrieben.

Um festzulegen, ob ein Layer zum Editieren und/oder Snapping genutzt werden darf, verwenden Sie die folgende Konfiguration. Die Standardwerte sind true.

{
    "id": "mylayer",
    "type": "AGS_FEATURE",
    "url": ".../FeatureServer/0",
    "advancedEditing": {
        "allowSnapping": true,
        "allowEditing": true
    }
}

Editier-Oberflächen

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

Name Beschreibung

allowGeometryEditing

Legt fest, ob der Reiter Geometrie angezeigt wird.

allowAttributeEditing

Legt fest, ob der Reiter Attribute angezeigt wird.

allowAttachmentEditing

Legt fest, ob der Reiter Datei-Anhänge angezeigt wird.

Das folgende Beispiel zeigt die Konfiguration mit den Standardwerten:

{
    "advanced-editing": {
        "Config": {
            "allowGeometryEditing": true,
            "allowAttributeEditing": true,
            "allowAttachmentEditing": true
        }
    }
}

Dialog zur Geometrie-Editierung anpassen

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

Name Beschreibung

showSketching

Legt fest, ob die Werkzeuge zum Zeichnen von temporären Hilfsgeometrien angezeigt werden.

Das folgende Beispiel zeigt die Konfiguration mit den Standardwerten:

{
    "advanced-editing": {
        "Config": {
            "showSketching": 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. 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://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 die Möglichkeit Objekte komplett zu verschieben abzuschalten, setzen Sie folgende Konfiguration:

{
    "advanced-editing": {
        "Config": {
            "allowMovingObject": true
        }
    }
}

Eine Verschiebung einzelner Stützpunkte ist weiterhin möglich.

Fangen (Snapping)

Fangen auf Grundkarten erlauben

Um das Fangen (Snapping) auf Grundkarten zu ermöglichen, setzen Sie folgende Konfiguration:

{
    "advanced-editing": {
        "Config": {
            "allowBasemapSnapping": true
        }
    }
}

Fang-Toleranz

Um die Toleranz des Fangens zu ändern, setzen Sie folgende Konfiguration (6 Pixel ist der Standardwert):

{
    "advanced-editing": {
        "Config": {
            "snappingOptions": {
                "distance": 6
            }
        }
    }
}

Fangen rechter Winkel und paralleler Linien abschalten

Um zu verhindern, dass beim Zeichnen von Linien oder Flächen rechte Winkel und parallele Linien zu zuvor gezeichneten Segmenten angezeigt und gefangen werden, setzen Sie folgende Konfiguration:

{
    "advanced-editing": {
        "Config": {
            "snappingOptions": {
                "selfEnabled": false
            }
        }
    }
}
Weitere Informationen zur Konfiguration können der Bundle-Dokumentation entnommen werden.