Räumliche Auswahl

Mithilfe der räumlichen Auswahl (auch Selektion genannt) und dem Result Center können Informationen zu Kartenobjekten abgefragt und angezeigt werden. Im Gegensatz zu Popups können die Informationen nicht nur zu Objekten an einem bestimmten Ort abgefragt werden, sondern auch für Objekte in einem größeren Bereich, der z.B. durch das Zeichnen eines Rechtecks festgelegt werden kann.

result ui

Datenquellen

Benötigtes Bundle: agssearch

Die folgenden Kartendienste können zur Suche genutzt werden:

  • ArcGIS Map- oder Feature-Layer

  • OGC Web Feature Services (WFS)

  • GeoJSON-Layer

  • CSV-Layer

Der jeweilige Layer muss die Operation Query unterstützen.

Automatische Registrierung

Um alle in der Karte sichtbaren Layer für die räumliche Auswahl zu verwenden, aktivieren Sie die automatische Registrierung und setzen Sie im Parameter useIn den Wert selection, wie in folgendem Beispiel dargestellt:

{
    "agssearch": {
        "AutoStoreRegistration": {
            "componentEnabled": true,
            "useIn": [
                "search",
                "selection"
            ]
        }
    }
}

Der Titel und die Namen der Attribute werden vom jeweiligen Layer übernommen und zur Anzeige in der Oberfläche verwendet.

Manuelle Registrierung

Mit folgender Konfiguration können Layer, die in der Karte verwendet werden, für die räumliche Auswahl registriert werden:

Konfiguration mit Verknüpfung zu einem Kartenlayer
{
    "agssearch": {
        "AGSStore": [
            {
                "id": "store01",
                "title": "Gemeinden in Deutschland (MapServer Layer)",
                "layerId": "grenzen/0",
                "useIn": [
                    "selection"
                ]
            },
            {
                "id": "store02",
                "title": "Gemeinden in Deutschland (Feature Layer)",
                "layerId": "gemeindelayer",
                "useIn": [
                    "selection"
                ]
            },
            {
                "id": "store03",
                "title": "Kindertagesstätten (WFS)",
                "layerId": "kitas_wfs_layer",
                "useIn": [
                    "selection"
                ]
            },
            {
                "id": "store04",
                "title": "Erdbeben (GeoJSON Layer)",
                "layerId": "earthquakes_geojson",
                "useIn": [
                    "selection"
                ]
            },
            {
                "id": "store05",
                "title": "Erdbeben (CSV Layer)",
                "layerId": "earthquakes_csv",
                "useIn": [
                    "selection"
                ]
            }
        ]
    },
    "map-init": {
        "Config": {
            "map": {
                "layers": [
                    {
                        "id": "grenzen",
                        "type": "AGS_DYNAMIC",
                        "url": "https://services.conterra.de/arcgis/rest/services/common/grenzen/MapServer",
                        "sublayers": [
                            {
                                "id": 0,
                                "title": "Gemeinden"
                            }
                        ]
                    },
                    {
                        "id": "gemeindelayer",
                        "url": "https://services.conterra.de/arcgis/rest/services/common/grenzen/FeatureServer/0",
                        "type": "AGS_FEATURE"
                    },
                    {
                        "id": "kitas_wfs_layer",
                        "type": "WFS",
                        "url": "https://www.stadt-muenster.de/ows/mapserv706/kitaserv",
                        "name": "ms:kitas01"
                    },
                    {
                        "id": "earthquakes_geojson",
                        "type": "GEOJSON",
                        "url": "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson"
                    },
                    {
                        "id": "earthquakes_csv",
                        "type": "CSV",
                        "url": "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_week.csv"
                    }
                ]
            }
        }
    }
}

Alternativ kann die URL eines Layers unabhängig von der Referenz auf eine Karten-Konfiguration definiert werden:

Konfiguration mit URL zu einem Dienst
{
    "agssearch": {
        "AGSStore": [
            {
                "id": "store01",
                "title": "Gemeinden in Deutschland",
                "url": "https://services.conterra.de/arcgis/rest/services/common/grenzen/MapServer/0",
                "useIn": [
                    "selection"
                ]
            },
            {
                "id": "store02",
                "title": "Gemeinden in Deutschland (Feature Layer)",
                "url": "https://services.conterra.de/arcgis/rest/services/common/grenzen/FeatureServer/0",
                "useIn": [
                    "selection"
                ]
            },
            {
                "id": "store03",
                "title": "Kindertagesstätten (WFS)",
                "url": "https://www.stadt-muenster.de/ows/mapserv706/kitaserv",
                "name": "ms:kitas01",
                "type": "wfs",
                "useIn": [
                    "selection"
                ]
            },
            {
                "id": "store04",
                "title": "Erdbeben (GeoJSON Layer)",
                "url": "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson",
                "type": "geojson",
                "useIn": [
                    "selection"
                ]
            },
            {
                "id": "store05",
                "title": "Erdbeben (CSV Layer)",
                "url": "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_week.csv",
                "type": "csv",
                "useIn": [
                    "selection"
                ]
            }
        ]
    }
}

Werkzeuge zur räumlichen Auswahl

Standard-Werkzeug

Benötigte Bundles: selection-ui, result-ui

Um das Standard-Werkzeug zur Auswahl von Objekten aus einem oder mehreren Layern zu einer App hinzuzufügen, muss das Werkzeug mit der ID selection-ui-tool zu einem Toolset hinzugefügt werden.

Datenquellen, die über die automatische Registrierung oder eine Verknüpfung zu einem Kartenlayer definiert wurden, werden ausgeblendet, wenn der entsprechende Kartenlayer ausgeschaltet wird. Datenquellen, die über eine URL definiert wurden, sind immer nutzbar.

Durch das Zeichnen eines Punkts, eines Rechtecks oder eines Polygons in der Karte, wird eine räumliche Auswahl auf den Objekten aller ausgewählten Datenquellen gestartet. Alle getroffenen Objekte werden nach der Auswahl im Result Center dargestellt und in der Karte hervorgehoben.

Weitere Informationen dazu, wie die Hervorhebung von Objekten in der Karte angepasst werden kann, können der Bundle-Dokumentation entnommen werden.

selection

Um das Verhalten des oben vorgestellten Werkzeugs anzupassen, verwenden Sie die folgende Konfiguration:

preselectSources

Legt fest, ob die zur Verfügung stehenden Datenquellen beim Öffnen des Fensters ausgewählt werden.

Erlaubte Werte:

all

wählt alle Datenquellen aus

none

wählt keine Datenquelle aus

disabled

erlaubt das Öffnen und Schließen des Fensters, ohne dass die getroffene Auswahl verändert wird.

Standardwert: all

activateSelectionMethod

Legt fest, ob die erste Auswahlmethode beim Öffnen des Fensters aktiviert wird.

Erlaubte Werte: true, false
Standardwert: true

closeOnSelection

Legt fest, ob das Fenster nach einer Auswahl geschlossen wird.

Erlaubte Werte: true, false
Standardwert: true

selectionMethods

Legt fest, welche Auswahlmethoden angeboten werden.

Erlaubte Werte: rectangle, point, polygon.
Standardwert: ["*"]

Beispielkonfiguration
{
    "selection-ui": {
        "Config": {
            "preselectSources": "all",
            "activateSelectionMethod": true,
            "closeOnSelection": true,
            "selectionMethods": [
                "*"
            ]
        }
    }
}
Weitere Informationen zur Konfiguration können der Bundle-Dokumentation entnommen werden.

Werkzeuge für einzelne Layer

Benötigte Bundles: selection-tools, result-ui

Das Bundle selection-tools erlaubt das Konfigurieren dedizierter Auswahlwerkzeuge, bei denen eine Datenquelle direkt mit einem Geometriewerkzeug verbunden ist.

{
    "selection-tools": {
        "Config": {
            "tools": [
                {
                    "id": "selectCountries",
                    "selectionMethod": "point",
                    "selectionOptions": {
                        "clickTolerance": 10
                    },
                    "sourceId": "countries",
                    "iconClass": "icon-map-selection"
                }
            ]
        }
    }
}
Weitere Informationen zur Konfiguration können der Bundle-Dokumentation entnommen werden.