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, ein wie in folgendem Beispiel dargestellt:
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" oder projizierte Koordinaten (PCS) in der Form "MinX,MinY,MaxX,MaxY,WKID". 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
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 eine Bannerbeschriftung hinzugefügt. Der Parameter find akzeptiert einzeilige Adressen, Teiladressen (wie nur Stadt oder nur Land), Ortsnamen sowie Breiten- und Längengradkoordinaten sowie Features in durchsuchbaren Layern (wie 1916352001 für eine Parcel Identification Number (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.
Punkt hinzufügen
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.
- <encoded title>: Titel des Punkt-Pop-ups. Wenn Sie keinen Titel angeben, bleibt das Pop-up leer.
- <encoded icon URL>: Symbol für den Punkt. Wenn Sie kein Symbol angeben, wird ein blaues Markersymbol verwendet.
- <encoded label>: 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. Keine Leerzeichen verwenden. 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.
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 schnell freigegeben wird, 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
Wechseln des Gebietsschemas
Um die App-Sprache zu wechseln, verwenden Sie locale=<language code>. Folgende Sprachcodes werden unterstützt: ar, cs, da, de, en, el, es, et, fi, fr, he, it, ja, ko, lt, lv, nb, nl, pl, pt-br, pt-pt, ro, ru, sv, th, tr, zh-cn, vi, zh-hk und zh-tw.
Beispiel:
http://<your portal url>/apps/webappviewer/index.html?locale=fr
Authentifizieren von Benutzern
Um einen Benutzer automatisch in einer nicht öffentlichen App zu authentifizieren, verwenden Sie token=<token>. Auf diese Weise müssen Benutzer nicht ihren Benutzernamen oder ihr Kennwort eingeben. Beispiel:
http://<your portal url>/apps/webappviewer/index.html?token=utmVcabc_LNyEQ7OuuHD73em0MErLR_cudJTeSIdMFTnL0poF3shVBeng5ieWHyZn0kAA8nhUg7jseQxz3bi5crnFMMpldDiJLrtzmO3jEM-ZNVIUEh5_qMms-YgXUwGgFbeQlM9WaI3jwraUqwah0yCceBAxEkEIAEWvlBEDfVsYs3LZydORRcs2QIcdLas
Steuern der Aktivierung mobiler Layouts
Die App unterstützt je nach Bildschirmgröße zwei Layout-Styles. Einer ist für Desktop- und der andere ist für mobile Geräte vorgesehen. 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