Kartensteuerung

Karteninhaltsteuerung (TOC)

Benötigtes Bundle: toc

Mithilfe der Karteninhaltsteuerung werden Karteninhalte aktiviert oder deaktiviert. Hierüber können beispielsweise einzelne Dienste oder deren Layer aktiviert werden, die Transparenz eines Dienstes gesteuert sowie eine Beschreibung und eine Legende zu jedem Layer angezeigt werden. Außerdem kann die Karteninhaltsteuerung zur Auswahl der angezeigten Grundkarte verwendet werden.

toc legend

Themenkarten

Die Karteninhaltsteuerung zeigt alle Themenkarten entsprechend ihrer Konfiguration an. Das Verhalten kann mit folgenden Optionen angepasst werden:

Option Beschreibung

actions

Dieser Parameter legt fest, welche Aktionen zu einzelnen Einträgen in der Karteninhaltsteuerung angeboten werden. Der Standard-Wert ist ["*"]. Dadurch werden alle verfügbaren Aktionen aufgelistet.

Alternativ können nur bestimmte Aktionen erlaubt werden. Die folgenden Aktionen stehen zur Verfügung:

zoom-to-extent

Führt einen Zoom auf die volle Ausdehnung des Dienstes oder Layers aus.

activate-children

Aktiviert alle untergeordneten Inhalte des Eintrags.

deactivate-children

Deaktiviert alle untergeordneten Inhalte des Eintrags.

change-opacity

Verändert die Deckkraft der Karte.

show-description

Zeigt die Beschreibung des Dienstes oder Layers. Diese wird vom jeweiligen Dienst oder Layer abgerufen. Alternativ kann Sie in der App konfiguriert werden.

show-copyright

Zeigt die Copyright-Information des Dienstes oder Layers. Diese wird vom jeweiligen Dienst oder Layer abgerufen. Alternativ kann Sie in der App konfiguriert werden.

maxBasemapsThreshold

Maximale Anzahl der Grundkarten, die als flache Liste angezeigt werden. Wenn die Anzahl der Grundkarten größer als die angegebene Zahl ist, wird ein Dropdown gerendert.

maxVisibleTitleLines

Anzahl der Textzeilen, die für Layer- und Service-Titel angezeigt werden. Wenn Titel länger sind, werden Sie abgeschnitten.

showBasemaps

Legt fest, ob die Grundkarte über die Karteninhaltsteuerung verändert werden kann. Siehe Grundkarten.

showLayerLegend

Aktiviert eine Legende für jeden Layer oder Sublayer. Die Legende wird ausgeblendet, wenn der entsprechende Layer nicht sichtbar ist.

Beispielkonfiguration
{
    "toc": {
        "Config": {
            "actions": [
                "show-description",
                "zoom-to-extent",
                "activate-children",
                "deactivate-children",
                "change-opacity",
                "show-copyright"
            ],        
            "showBasemaps" : false,
            "showLayerLegend": false,
            "maxVisibleTitleLines": 3,
            "maxBasemapsThreshold" : 3
        }
    }
}

Einzelne Dienste oder Layer ausblenden

Um bestimmte Dienste oder Layer nicht in der Kartensteuerung anzuzeigen, ergänzen Sie die Eigenschaft "listMode": "hide" am jeweiligen Dienst bzw. Layer. Im folgenden Beispiel wird lediglich der Layer "Gemeinden" in der Kartensteuerung angezeigt. Der Layer "Kreise" wird immer in der Karte angezeigt und die Sichtbarkeit kann nicht vom Nutzer verändert werden.

{
    "id": "grenzen",
    "type": "AGS_DYNAMIC",
    "url": "https://services.conterra.de/arcgis/rest/services/common/grenzen/MapServer",
    "sublayers": [
        {
            "id": 0,
            "title": "Gemeinden"
        },
        {
            "id": 1,
            "title": "Kreise",
            "listMode": "hide"
        }
    ]
}

Um bestimmte Layer nicht nur von der Kartensteuerung auszuschließen, sondern komplett aus der Karte, lesen Sie das Beispiel zu ArcGIS Dynamic Map Service.

Grundkarten

Um dem Nutzer die Möglichkeit zu geben, Grundkarten über die Karteninhaltsteuerung auszuwählen, aktivieren Sie die Einstellung showBasemaps durch folgende Konfiguration:

Beispielkonfiguration
{
    "toc": {
        "Config": {
            "showBasemaps" : true
        }
    }
}

Standardmäßig werden die zur Auwahl stehenden Grundkarten als Liste angezeigt, wenn es nicht mehr als drei Karten sind. Stehen mehr als drei Karten zur Verfügung, wird stattdessen ein Dropdown-Button angezeigt.

Um den Grenzwert ab welchem dieser Wechsel der Oberfläche erfolgt zu ändern, verwenden Sie folgende Konfiguration:

Beispielkonfiguration
{
    "toc": {
        "Config": {
            "showBasemaps" : true,
            "maxBasemapsThreshold" : 3
        }
    }
}
Weitere Informationen zur Konfiguration können der Bundle-Dokumentation entnommen werden.

Alternative Möglichkeiten zur Steuerung von Grundkarten

Basemap Toggler

Benötigtes Bundle: basemaptoggler

Dieses Bundle ermöglicht den Wechsel zwischen mehreren Grundkarten über ein Dropdown-Menü. Per Konfiguration können eigene Styles und/oder Icons für die einzelnen Grundkarten ergänzt werden.

basemap toggler

Option Beschreibung

buttonStyles

Ergänzen von Style-Klassen sowie einer Icon-Klasse am jeweiligen Eintrag im Dropdown-Menü. Die Verbindung von Style zur Karte wird über die jeweilige ID der Grundkarte hergestellt.

showLabel

Anzeige der Grundkarten-Titel

Beispielkonfiguration
{
    "basemaptoggler": {
        "Config": {
            "buttonStyles": {
                "esri_street": {
                    "baseClass": "green",
                    "iconClass": "icon-street"
                },
                "esri_topo": {
                    "baseClass": "green",
                    "iconClass": "icon-map-paper"
                },
                "esri_hybrid": {
                    "baseClass": "green",
                    "iconClass": "icon-satellite"
                }
            },
            "showLabel": true
        }
    }
}
Weitere Informationen zur Konfiguration können der Bundle-Dokumentation entnommen werden.

Basemap Switcher

Benötigtes Bundle: basemapswitcher

Dieses Bundle ermöglicht den Wechsel zwischen zwei Grundkarten. Dazu kann neben der beim Start geladenen Grundkarte eine weitere definiert werden, die diese auf Klick ersetzt.

basemap switcher

Beispielkonfiguration
{
    "basemapswitcher": {
        "Config": {
            "nextBasemap": "hybrid",
            "titleVisible": true
        }
    }
}
Dieses Bundle kann nicht gemeinsam mit den anderen zuvor genannten Bundles in einer App genutzt werden.
Weitere Informationen zur Konfiguration können der Bundle-Dokumentation entnommen werden.