Verwenden von URL-Parametern

Mit Web AppBuilder erstellte Apps können direkt mit URL-Parametern geändert werden. Die URL beginnt immer mit <your portal url>/apps/webappviewer/index.html? und enthält mindestens einen der unten angegebenen Parameter. Wenn Sie mehr als einen Parameter einfügen möchten, verwenden Sie zu deren Trennung das kaufmännische Und-Zeichen (&). Beispiel:

http://<your portal url>/apps/webappviewer/index.html?id=6815e148ff1c4aee8dc7159816380a4d&webmap=9cf053ea602345ddae060010c470e615
Tipp:

URL-Parameter können nun auf einfachere Weise konstruiert werden. Fügen Sie das Widget "Freigeben" in der App hinzu, und klicken Sie auf Link-Optionen. Link-Vorschau zeigt die Parameter an, die Sie ausgewählt haben, und eine Verknüpfung, die die URL-Parameter enthält, steht Ihnen automatisch zur Verfügung. Beachten Sie, dass das Widget "Suche" in der App aktiviert werden muss, um den Parameter find zu verwenden.

Hinweis:

Derzeit werden URL-Parameter nicht von 3D-Apps unterstützt.

Codieren der Abfrageparameter

Alle Abfrageparameter müssen codiert sein. Die Codierung ersetzt ungültige Zeichen durch "%" gefolgt vom jeweils zugehörigen hexadezimalen Äquivalent.

Nachfolgend finden Sie beispielsweise einen nicht codierten URL-Parameter:

http://<your portal url>/apps/webappviewer/index.html?find=380 new york street, redlands, ca

Im folgenden Beispiel ist derselbe Parameter verschlüsselt:

http://<your portal url>/apps/webappviewer/index.html?find=380%20new%20york%20street,%20redlands,%20ca

Im Web stehen viele kostenlose Sites und Werkzeuge zum Erstellen von codierten URLs zur Verfügung. Beispielsweise verfügt Albion Research Ltd. über die Seite "URLEncode und URLDecode". Zur besseren Lesbarkeit sind die restlichen Beispiele in diesem Thema nicht codiert.

Öffnen einer gespeicherten App

Zum Öffnen einer mit Web AppBuilder erstellten, gespeicherten App benötigen Sie id= und die eindeutige ID der App, wie im folgenden Beispiel gezeigt:

http://<your portal url>/apps/webappviewer/index.html?id=6815e148ff1c4aee8dc7159816380a4d

Definieren der Webkarte

Um die Webkarte zu definieren, verwenden Sie webmap= und die eindeutige ID der Webkarte, wie im folgenden Beispiel gezeigt:

http://<your portal url>/apps/webappviewer/index.html?webmap=9cf053ea602345ddae060010c470e615

Zentrieren der Karte

Um die Karte an einer bestimmten Position zu zentrieren, legen Sie center= anhand geographischer Koordinaten (X,Y) oder projizierter Koordinaten (X,Y,WKID) fest.

Vorsicht:

Als Trennzeichen können Sie Kommas oder Semikolons verwenden. Falls Sie Dezimalstellen durch Kommas abtrennen, verwenden Sie bitte Semikolons.

Nachfolgend finden Sie ein Beispiel für geographische Koordinaten:

http://<your portal url>/apps/webappviewer/index.html?center=34,-50

Nachfolgend finden Sie ein Beispiel für projizierte Koordinaten:

http://<your portal url>/apps/webappviewer/index.html?center=500000,5500000,102100

Definieren der Maßstabsebene

Um die Maßstabsebene der Karte zu definieren, verwenden Sie die Parameter center= und level=. Der Parameter level akzeptiert die Ebenen-ID des Cache-Maßstabs, wie im REST-Service-Endpunkt der Karte aufgeführt. Beispiel:

http://<your portal url>/apps/webappviewer/index.html?center=20,45&level=4

Definieren des Maßstabs

Um den Maßstab der Karte zu definieren, verwenden Sie die Parameter center= und scale=. Der Parameter scale akzeptiert den Cache-Maßstab, wie im REST-Endpunkt des Kartenservice aufgeführt. Beispiel:

http://<your portal url>/apps/webappviewer/index.html?center=20,45&scale=4622324

Definieren der Ausdehnung

Definieren Sie die Ausdehnung der Karte mit extent=. Der Parameter extent akzeptiert geographische Koordinaten (GCS) in der Form "MinX,MinY,MaxX,MaxY", projizierte Koordinaten (PCS) in der Form "MinX,MinY,MaxX,MaxY,WKID" oder WKT-Zeichenfolgen (Well-Known Text) in der Form "MinX,MinY,MaxX,MaxY,WKT". Als Trennzeichen können Sie Kommas oder Semikolons verwenden. Falls Sie Dezimalstellen durch Kommas abtrennen, verwenden Sie bitte Semikolons.

Nachfolgend finden Sie ein Beispiel für geographische Koordinaten:

http://<your portal url>/apps/webappviewer/index.html?extent=-117.20,34.055,-117.19,34.06

Nachfolgend finden Sie ein Beispiel für projizierte Koordinaten:

http://<your portal url>/apps/webappviewer/index.html?extent=-13079253.954115,3959110.38566837,-12918205.318785,4086639.70193162,102113

Nachfolgend finden Sie ein Beispiel für WKT-Zeichenfolgen:

http://<your portal url>/apps/webappviewer/index.html?extent=1008562.1255,1847133.031,1060087.7901,1877230.7859,wkt=PROJCS["NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]]

Festlegen der Layer-Sichtbarkeit

Beim Festlegen der Layer-Sichtbarkeit für die Karte können Sie zum Angeben von sichtbaren Layern showLayers= und zum Deaktivieren von Layern hideLayers= verwenden. Die Parameter showLayers= und hideLayers= akzeptieren eine einzelne Layer-ID oder mehrere Layer-IDs. Verwenden Sie für mehrere Layer ein Semikolon zum Unterteilen der Liste mit IDs (&showLayers=<layerID>;<layerID>;<layerID>).

Beispiel: http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&showLayers=Census_8491;Census_8492;Census_8493.

Layer-Namen sind ebenfalls zulässig. Die Verwendung der Layer-ID ist jedoch zuverlässiger, da der Layer-Name geändert werden kann. Sie können die Layer-ID aus dem Inhalt des Webkartenelements abrufen: http://<your portal url>/sharing/rest/content/items/<webmapItemID>/data/?f=pjson.

Wenn Sie den Parameter showLayers= bzw. hideLayers= zum Festlegen der Sichtbarkeit eines Sublayers verwenden, wirkt sich dies lediglich auf die Sichtbarkeit von Layern auf derselben Ebene aus. Wenn Ihre Karte beispielsweise zwei Gruppen-Layer (A und B) mit jeweils drei Sublayern (A1, A2, A3 und B1, B2, B3) enthält und Sie den Parameter showLayers= zum Anzeigen von Sublayer B2 verwenden, bleiben beide Gruppen-Layer A und B in der Karte weiterhin aktiviert, die Sublayer B1 und B3 hingegen werden deaktiviert.

Tipp:

Falls der Wert für den Parameter showLayers= bzw. hideLayers= leer ist, ist kein Layer sichtbar bzw. sind alle Layer sichtbar.

Vorsicht:

Werden beim Festlegen des Parameters showLayers= bzw. hideLayers= zahlreiche Layer angegeben oder sind die Namen übermäßig lang, kann die URL aufgrund ihrer Länge möglicherweise nicht vom Server interpretiert werden. (Die Längenbeschränkungen für URLs können je nach Server variieren.)

Suchen einer Position oder eines Features zum Öffnen der Karte

Um eine Position oder ein Feature zum Öffnen der Karte zu suchen, verwenden Sie find=. Die Karte wird automatisch auf die Position der nächsten Übereinstimmung gezoomt, und der Karte wird ein Detailausschnitt-Marker hinzugefügt. Der Parameter find akzeptiert einzeilige Adressen, Teiladressen (wie nur Stadt oder nur Land), Ortsnamen, Längen- und Breitengradkoordinaten sowie Features in durchsuchbaren Layern (z. B. 1916352001 für eine Flurstücks-Identifikationsnummer (PIN)). Beispiel:

http://<your portal url>/apps/webappviewer/index.html?find=380 new york street, redlands, ca
Vorsicht:

Alle Abfrageparameter müssen codiert sein, und das Widget "Suchen" muss in der App für die Verwendung dieses Parameters aktiviert sein.

Hinzufügen eines Punktes

Mit marker=<x>,<y> können Sie der Karte einen Punkt hinzufügen. Dieser Punkt wird der Karte an den angegebenen XY-Positionen hinzugefügt. Sie können auch die folgenden optionalen Eigenschaften festlegen:

  • <WKID>: Raumbezug der XY-Koordinaten, die der Karte hinzugefügt wurden. Sollten Sie kein WKID angeben, werden GCS-Koordinaten verwendet.
  • <codierter Titel>: Titel des Punkt-Pop-ups. Wenn Sie keinen Titel angeben, bleibt das Pop-up leer.
  • <codierte Symbol-URL>: Symbol für den Punkt. Wenn Sie kein Symbol angeben, wird ein blaues Markersymbol verwendet.
  • <codierte Beschriftung>: Beschriftung neben dem Punktsymbol.

Folgende Punkte sollten beachtet werden:

  • <x>,<y> sind erforderlich.
  • Denken Sie daran, die die Parameter "Titel", "Symbol" und "Beschriftung" zu kodieren.
  • Fügen Sie die Eigenschaften in folgender Reihenfolge hinzu: marker=<x>,<y>,<WKID>,<codierter Titel>,<codierte Symbol-URL>,<codierte Beschriftung>.
  • Als Trennzeichen können Sie Kommas oder Semikolons verwenden. Falls Sie Dezimalstellen durch Kommas abtrennen, verwenden Sie bitte Semikolons.
  • Verwenden Sie leere Werte. Verwenden Sie keine Leerzeichen. Wenn Sie zum Beispiel eine Beschriftung angeben möchten, jedoch keine der anderen optionalen Eigenschaften, dann fügen Sie bitte die Beschriftung als sechsten Parameter hinzu und lassen Sie die anderen leer (X;Y;;;;Beschriftung).
  • Wenn sich die Karte (neben der Zentrierung auf den Punkt) vergrößern lassen soll, geben Sie den Parameter level= an.

Beispiel:

http://<your portal url>/apps/webappviewer/index.html?marker=-79.234826;38.147884;;Race start and finish;;Grindstone 100 Ultra Marathon&level=7

Abfragen eines Features

Um ein Feature abzufragen und darauf zu zoomen, können Sie eine der folgenden Optionen verwenden:

  • query=<layer name>,<field name>,<field value>
  • query=<layer name>, <where clause>
  • query=<layer id>,<field name>,<field value>
  • query=<layer id>, <where clause>
Tipp:

URL-Parameter können nun interaktiv konstruiert werden. Fügen Sie das Widget "Freigeben" in der App hinzu, und klicken Sie auf Link-Optionen. Wählen Sie die Option Ein Feature abfragen und darauf zoomen, und wählen Sie den Layer, das Feld und den Feldwert aus, die Sie abfragen möchten. Kopieren Sie die URL inLink-Vorschau, die die von Ihnen angegebenen URL-Parameter enthält. Entfernen Sie das Widget "Freigeben" aus der App, wenn es nicht benötigt wird.

Vorsicht:

Bei allen Abfrageparametern muss die Groß-/Kleinschreibung berücksichtigt und sie müssen codiert werden.

Die WHERE-Klausel entspricht dem SQL-Standard. Wenn die WHERE-Klausel zum Beispiel die IN-Operation enthält, dann verwenden Sie das Semikolon, statt Layer-Name oder -ID mit Kommas von der WHERE-Klausel zu trennen, wie unten dargestellt. Das liegt daran, dass ein Komma in der WHERE-Klausel speziell zum Aufbauen der Werteliste verwendet wird, wie zum Beispiel in ('A11', 'A12', 'A13') oder ('Charlotte', 'Chicago'). Dadurch kann der Parser beim Abfrageparameter genau zwischen Layer und WHERE-Klausel unterscheiden.

  • query=<layer name>; <where clause>
  • query=<layer id>; <where clause>

Da der Layer-Name geändert werden kann, wird dringend empfohlen, die Layer-ID in der Abfrage zu verwenden. Sie können die Layer-ID aus der Web-Karten-ID abrufen, wie im Folgenden dargestellt: http://<your portal url>/sharing/rest/content/items/32a83775654249dcae6b8f2eff5d4072/data/?f=pjson

Vorsicht:

Stellen Sie sicher, dass die Webkarte öffentlich freigegeben ist, wenn Sie die Layer-ID abrufen.

Ein Layer wird der Karte beispielsweise einzeln hinzugefügt, wie im folgenden Beispiel im JSON-Format. Die Layer-ID lautet "Census_8491", der Feldname ist "POP2000" und der Feldwert ist "1211537". Sie können folgende Abfragen durchführen:

id: "Census_8491",
layerType: "ArcGISFeatureLayer",
url: "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3",
visibility: true,
opacity: 1,
mode: 1,
title: "Census - states",

http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,POP2000,1211537
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,POP2000=1211537

Sie können auch Zeichenfolgen- oder die ObjectID-Felder abfragen.

http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,STATE_NAME,California
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,STATE_NAME='California'
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,OBJECTID,1

Layer werden häufig als Gruppe von Kartenservices hinzugefügt. Um einen Sublayer in einer Gruppe abzufragen, verwenden Sie stattdessen <layer id_sublayer id> als Layer-ID. Beim Beispiel des folgenden Layers ist die Layer-ID "Census_3217" und der Sublayer-ID-Index ist "3". Die Layer-ID für den Sublayer sollte "Census_3217_3" lauten. Sie können folgende Abfragen durchführen:

id: "Census_3217",
layerType: "ArcGISMapServiceLayer",
url: "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer",
visibility: true,
opacity: 1,
title: "Census"

http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_3217_3,POP2000,1211537
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_3217_3,POP2000=1211537
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491;STATE_NAME in ('California', '')

Ändern des Gebietsschemas

Um die App-Sprache zu wechseln, verwenden Sie den URL-Parameter locale und einen zweistelligen Sprachcode nach ISO 639-1. Die folgenden Sprachcodes werden unterstützt: ar, bs, ca, cs, da, de, el, en, es, et, fi, fr, he, hr, hu, id, it, ja, ko, lt, lv, nb, nl, pl, pt-br, pt-pt, ro, ru, sk, sl, sr, sv, th, tr, uk, vi, zh-cn, zh-hk und zh-tw.

Wenn Sie Web AppBuilder z. B. in französischer Sprache verwenden möchten, hängen Sie der URL locale=fr wie folgt an:

http://<your portal url>/apps/webappviewer/index.html?locale=fr

Steuern der Aktivierung mobiler Layouts

Die App unterstützt je nach Bildschirmgröße zwei Layout-Styles. Ein Layout ist für Desktop vorgesehen und das andere für mobile Geräte. Wenn die Höhe oder Breite einer Bildschirmanzeige weniger als 600 Pixel beträgt, wird das mobile Layout automatisch angewendet. Dies kann jedoch zu unerwartetem Verhalten führen, wenn die App in eine Website eingebettet wird, z. B. wenn das Pop-up in der Website den mobilen Layout-Style aufweist. Zum Steuern des Layout-Styles verwenden Sie mobileBreakPoint=<pixel number>. Sie können beispielsweise den Desktop-Style beibehalten, bis die Bildschirmgröße weniger als 300 Pixel beträgt, wie nachfolgend dargestellt:

http://<your portal url>/apps/webappviewer/index.html?mobileBreakPoint=300