Layout

Das Layout einer App besteht aus zwei Teilen, die als separate Bundles zu einer App hinzugefügt werden:

  • Ein Layout-Template legt die Größe und Positionierung einzelner GUI-Elemente (Widgets) fest.

  • Ein Farbschema (Theme) definiert die Farben und das Aussehen von GUI-Elementen (Widgets).

Layout-Templates

In der Standard-Auslieferung von map.apps gibt es ein Template-Bundle (template-seasons). Dieses stellt das Layout-Template seasons zur Verfügung (responsives Layout für Desktop-, Tablet- und mobile Ansichten).

Um ein eigenes Template-Bundle zu erstellen, lesen Sie Provide template as a bundle.

Widgets anpassen

Für jede Funktion, die eine graphische Bedienoberfläche (GUI) zur Verfügung stellt, ist eine Standard-Konfiguration im Layout-Template hinterlegt, die die Größe, Position und weitere Eigenschaften zur Darstellung definiert.

Um die Darstellung eines Widgets anzupassen, überschreiben Sie diese Standardwerte durch Angabe der jeweiligen widgetRole wie im folgenden Beispiel:

{
    "templates": {
        "TemplateModel": {
            "widgets": [
                {
                    "widgetRole": "tocWidget",
                    "window": { ... }
                }
            ]
        }
    }
}

Eine Liste der widgetRoles-Werte der gängigsten Widgets finden Sie in der Liste der Widgets. In den folgenden Abschnitten werden mögliche Anpassungen beschrieben.

Größe und Position

Die Parameter w (width) und h (height) definieren die Größe eines Widgets. Die Parameter l (left), r (right), b (bottom) und t (top) definieren die Position eines Widgets.

Um ein Widget mit definierter Größe an einer bestimmten Position anzuzeigen, setzen Sie die Parameter w, h und sowohl l oder r als auch h oder b wie im folgenden Beispiel. Die Zahlen werden als Anzahl von Pixeln ausgewertet.

{
    "widgetRole": "tocWidget",
    "window": {
        "marginBox": {
            "w": 435,
            "h": 200,
            "t": 125,
            "l": 20
        }
    }
}

Um die Größe des Widgets abhängig von der Höhe oder Breite des Ansichtsbereichs zu verändern, setzen Sie die Werte für gegenüberliegende Seiten und keinen Wert für die Breite oder Höhe. Die Konfiguration im folgenden Beispiel definiert eine Breite für die Karteninhaltsteuerung sowie einen Abstand nach oben und unten. Die Höhe in der das Widget angezeigt wird ist dadurch abhängig von der in der Ansicht zur Verfügung stehenden Höhe.

{
    "widgetRole": "tocWidget",
    "window": {
        "marginBox": {
            "w": 435,
            "t": 125,
            "l": 20,
            "b": 50
        }
    }
}

Um die Werte relativ zur Größe des Ansichtsbereichs anzugeben, geben Sie die Werte als String mit Prozentzeichen an, wie im folgenden Beispiel:

{
    "widgetRole": "tocWidget",
    "window": {
        "marginBox": {
            "w": "30%",
            "h": "50%",
            "t": 125,
            "l": 20
        }
    }
}

Wenn keine Werte für die Position gesetzt sind, wird das Widget in der Mitte des Ansichtsbereichs angezeigt.

Titel-Leiste ausblenden

Um die Titel-Leiste eines Widgets auszublenden, verwenden Sie die folgende Konfiguration:

{
    "widgetRole": "tocWidget",
    "window": {
        "windowClass":"noTitleBarAndWindowTools"
    }
}

Weitere Optionen

Um die Interaktionsmöglichkeiten bei der Nutzung eines Widgets zu beschränken, verwenden Sie die folgenden Konfigurationsoptionen:

{
    "widgetRole": "tocWidget",
    "window": {
        "resizable": true,
        "maximizable": true,
        "draggable": true,
        "closable": true,
        "modal": true
    }
}
Option Beschreibung

resizable

Definiert, ob das Fenster in der Größe verändert werden kann.

maximizable

Definiert, ob das Fenster maximiert werden kann.

draggable

Definiert, ob das Fenster verschoben werden kann.

closable

Definiert, ob das Fenster geschlossen werden kann.

modal

Definiert, ob das Fenster im geöffneten Zustand den Zugriff auf andere Elemente der App blockiert.

Weitere Hinweise zum Fenster-System finden Sie auf der Seite Window system.

Liste von Widgets

Nutzen Sie die widgetRole aus der folgenden Tabelle, um das jeweilige Widget anzupassen:

Bundle widgetRole Funktion

coordinateconversion

coordinateconversion

Koordinaten anzeigen, transformieren, kopieren und suchen

coordinateviewer

coordinateviewer

Koordinaten und Maßstab anzeigen

editing

editing

Kartenobjekte erstellen oder bearbeiten

legend

legend

Legende anzeigen

measurement-2d

distanceMeasurement2D

Die Strecke zwischen zwei Punkten messen

measurement-2d

areaMeasurement2D

Eine Fläche und ihren Umfang messen

measurement-3d

lineMeasurement3D

Die Strecke zwischen zwei Punkten messen

measurement-3d

areaMeasurement3D

Eine Fläche und ihren Umfang messen

printing

printing

Einen Ausdruck der Karte erstellen

result-ui

result-ui

Result Center öffnen

search-ui

search-ui

Die zentrale Suche

selection-ui

selection-ui

Objekte in der Karte auswählen

share-link

sharelink

App mit parametrisiertem Link teilen

portal-webscene-slides

slideSelector

Slides für eine Webszene auswählen

toc

tocWidget

Karteninhaltsteuerung

Farbschemas (Themes)

Die folgenden Theme-Bundles stehen zur Verfügung:

Bundle-Name Name des Farbschemas Beschreibung

theme-autumn

autumn

Heller Hintergrund, dunkle Schrift, blaue Akzent-Farbe

theme-winter

winter

Heller Hintergrund, dunkle Schrift, schwarze Akzent-Farbe

theme-spring

spring

Heller Hintergrund, dunkle Schrift, grüne Akzent-Farbe

theme-summer

summer

Heller Hintergrund, dunkle Schrift, rote Akzent-Farbe

theme-everlasting

everlasting

Dunkler Hintergrund, helle Schrift

Ist in der App-Konfiguration kein Theme konfiguriert, wird als Standard das Farbschema everlasting verwendet. Für eine erhöhte Accessibility (Barrierearmut) empfehlen wir die Verwendung eines der hellen Farbschemas. Um ein anderes Farbschema in einer App zu verwenden, setzen Sie folgende Konfiguration:

{
    "themes": {
        "ThemeModel": {
            "_selectedTheme": "autumn"
        }
    }
}

Wechsel zwischen verschiedenen Farbschemas

Um den Wechsel zwischen verschiedenen Farbschemas während der Nutzung einer App zu ermöglichen, aktivieren Sie den ThemeSelector mit der folgenden Konfiguration:

{
    "themes": {
        "ThemeModel": {
            "_selectedTheme": "autumn"
        },
        "ThemeSelector": {
            "componentEnabled": true
        }
    }
}

Individuelle Style-Anpassungen in einer App (app.css)

Um in einer App individuelle Anpassungen des Layouts vorzunehmen, kann eine CSS-Datei zur App hinzugefügt werden. Ergänzen Sie dazu die Konfiguration für styles in der App-Konfiguration im Abschnitt load wie in folgendem Beispiel:

{
    "load": {
        "allowedBundles": [
            "map-init",
            "notifier",
            "splashscreen",
            "system",
            "templatelayout",
            "template-seasons",
            "theme-autumn",
            "..."
        ],
        "styles": [
            "${app}:app.css"
        ]
    }
}

Erstellen Sie eine neue Datei app.css und legen diese neben die Datei app.json. In dieser Datei können Sie nun CSS-Anweisungen ergänzen, um individuelle Style-Anpassungen vorzunehmen.

Beachten Sie, dass sich diese Anpassungen nur auf die konkrete App beziehen. Bei Anpassungen, die in mehreren Apps einheitlich erscheinen sollen, empfiehlt sich die Erstellung eines eigenen Themes. Lesen Sie hierzu Creation of a custom theme.