Utiliser les paramètres URL

Les applications créées avec Web AppBuilder peuvent être modifiées directement avec des paramètres d’URL. L’URL commence toujours par <your portal url>/apps/webappviewer/index.html? et contient un ou plusieurs des paramètres de requête répertoriés ci-dessous. Si vous souhaitez inclure plusieurs paramètres, utilisez un caractère Et commercial (&) pour les séparer. En voici un exemple :

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

Il existe une manière plus simple de construire des paramètres URL. Ajoutez le widget Partager dans l'application et cliquez sur Options de lien. L'option Aperçu du lien permet d'afficher les paramètres que vous avez sélectionnés, et un lien de raccourci comprenant les paramètres de l'URL est généré automatiquement. Gardez à l’esprit que le widget Rechercher doit être activé dans l’application pour utiliser le paramètre find.

Remarque :

Actuellement, les applications 3D ne prennent pas en charge les paramètres URL.

Coder les paramètres de requête

Tous les paramètres de requête doivent être codés. Le codage remplace les caractères non valides par %, suivis de leur équivalent hexadécimal.

Voici un exemple de paramètre URL non codé :

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

Voici le même paramètre codé :

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

Internet propose de nombreux sites et outils gratuits pour générer des URL codées. Par exemple, Albion Research Ltd. offre une page URLEncode et URLDecode. Pour des raisons de lisibilité, le reste des exemples dans cette rubrique ne sont pas codés.

Ouvrir une application enregistrée

Pour ouvrir une application enregistrée créée avec Web AppBuilder, utilisez id= et l’identifiant unique de l’application, comme illustré dans l’exemple suivant :

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

Définir la carte web

Pour définir la carte Web, utilisez webmap= et l’ID unique de la carte Web, comme illustré dans l’exemple suivant :

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

Centrer la carte

Pour centrer la carte à un emplacement en particulier, définissez center= à l’aide des coordonnées géographiques (x,y) ou des coordonnées projetées (x, y, WKID).

Attention :

Vous pouvez utiliser des virgules ou des points-virgules comme séparateurs. Utilisez des points-virgules si vos nombres ont deux points comme symbole de décimales.

Voici un exemple de coordonnées géographiques :

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

Voici un exemple de coordonnées projetées :

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

Définir le niveau d'échelle

Pour définir le niveau d’échelle de la carte, utilisez les paramètres center= et level=. Le paramètre level accepte l’ID de niveau de l’échelle du cache tel qu’il figure dans l’extrémité REST du service de carte. En voici un exemple :

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

Définir l'échelle

Pour définir l’échelle de la carte, utilisez les paramètres center= et scale= Le paramètre scale accepte l’échelle du cache telle qu’elle figure dans l’extrémité REST du service de carte. En voici un exemple :

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

Définir l'étendue

Pour définir l’étendue de la carte, utilisez extent=. Le paramètre extent accepte les coordonnées géographiques (GCS) au format MinX,MinY,MaxX,MaxY, les coordonnées projetées (PCS) au format MinX,MinY,MaxX,MaxY,WKID ou une chaîne de texte connu (WKT) au format MinX,MinY,MaxX,MaxY,WKT. Vous pouvez utiliser des virgules ou des points-virgules comme séparateurs. Utilisez des points-virgules si vos nombres ont deux points comme symbole de décimales.

Voici un exemple de coordonnées géographiques :

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

Voici un exemple de coordonnées projetées :

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

L’exemple suivant illustre une chaîne de texte connu :

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]]

Définir la visibilité des couches

Pour définir la visibilité des couches pour la carte, vous pouvez utiliser showLayers= pour spécifier les couches visibles, ou utiliser hideLayers= pour désactiver les couches. Les paramètres showLayers= et hideLayers= acceptent un seul ID de couche ou plusieurs. Si plusieurs couches sont présentes, utilisez un point-virgule pour séparer les identifiants de la liste (&showLayers=<layerID>;<layerID>;<layerID>).

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

Les noms de couche sont également acceptables. Il est toutefois plus fiable d’utiliser l’ID de la couche, car son nom peut être modifié. Vous pouvez récupérer l’ID de la couche dans le contenu de l’élément de carte Web : http://<your portal url>/sharing/rest/content/items/<webmapItemID>/data/?f=pjson

Lorsque vous utilisez les paramètres showLayers= ou hideLayers= pour définir la visibilité d’une sous-couche, seule la visibilité des couches au même niveau est affectée. Par exemple, si votre carte comporte deux groupes de couches (A et B) avec trois sous-couches chacun (A1, A2, A3 et B1, B2, B3), et que vous utilisez le paramètre showLayers= pour afficher la sous-couche B2, les deux groupes de couches A et B seront activés sur la carte, mais les sous-couches B1 et B3 seront désactivées.

Conseil :

Lorsque la valeur du paramètre showLayers= ou hideLayers= est vide, aucune couche ne sera visible, ou au contraire, toutes les couches seront visibles.

Attention :

Si vous indiquez un grand nombre de couches ou si les noms sont longs lorsque vous définissez le paramètre showLayers= ou hideLayers=, il est possible que l’URL soit trop longue pour que le serveur puisse l’interpréter. (Différents serveurs peuvent avoir une limitation de longueur unique pour les URL.)

Rechercher un emplacement ou une entité pour ouvrir la carte

Pour rechercher l’emplacement ou l’entité sur lequel ouvrir la carte, utilisez find=. La carte effectue automatiquement un zoom sur le résultat le plus proche et un symbole ponctuel de rappel est ajouté à la carte. Le paramètre find accepte les adresses sur une seule ligne, les adresses partielles (comme une ville ou un pays uniquement), les noms de lieux, les coordonnées de longitude/latitude et les entités contenues dans des couches dans lesquelles il est possible d’effectuer des recherches (par exemple, 1916352001 comme numéro d’identification de parcelle [PIN]). En voici un exemple :

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

Tous les paramètres de requête doivent être codés, et le widget Rechercher doit être activé dans l'application pour utiliser ce paramètre.

Ajouter un point

Pour ajouter un point sur la carte, utilisez marker=<x>,<y>. Le point est ajouté à la carte aux emplacements x et y spécifiés. Vous pouvez également inclure les propriétés facultatives suivantes :

  • <wkid> : référence spatiale des coordonnées x,y ajoutées à la carte. Si vous n'incluez pas de WKID, les coordonnées GCS sont utilisées.
  • <titre codé> : titre de la fenêtre contextuelle de point. Si vous n'incluez pas de titre, la fenêtre contextuelle sera vide.
  • <URL d'icône codée> : symbole du point. Si vous n'incluez pas de symbole, un symbole ponctuel bleu est utilisé.
  • <étiquette codée> : étiquette en regard du symbole de point.

Vous devez prendre en compte les éléments suivants :

  • <x>,<y> sont requis.
  • Veillez à coder les paramètres de titre, d'icône et d'étiquette.
  • Vous devez ajouter des propriétés dans cet ordre : marker=<x>,<y>,<wkid>,<titre codé>,<URL d'icône codée>,<étiquette codée>.
  • Vous pouvez utiliser des virgules ou des points-virgules comme séparateurs. Utilisez des points-virgules si vos nombres ont deux points comme symbole de décimales.
  • Utilisez des valeurs vides. N'utilisez pas d'espaces. Par exemple, si vous voulez préciser une étiquette et aucune autre propriété facultative, ajoutez l'étiquette en tant que sixième paramètre avec des valeurs vides pour les autres (x;y;;;;label).
  • Si vous voulez faire un zoom avant sur la carte (en plus de centrer sur le point), incluez le paramètre level=.

En voici un exemple :

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

Interroger une entité

Pour interroger une entité et zoomer dessus, vous pouvez utiliser une des options suivantes :

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

Il est désormais possible de construire des paramètres URL de façon interactive. Ajoutez le widget Partager dans l'application et cliquez sur Options de lien. Choisissez l'option Interroger une entité et zoomer dessus et sélectionnez la couche, le champ et la valeur de champ sur lesquels exécuter la requête. Copiez l'URL dans Aperçu du lien, qui contient les paramètres d'URL que vous avez spécifiés. Supprimez le widget Partager de l'application si vous n'en avez pas besoin.

Attention :

Tous les paramètres de requête respectent la casse et doivent être codés.

La clause WHERE respecte la norme SQL. Si la clause WHERE contient par exemple l’opération IN, utilisez un point-virgule au lieu d’une virgule pour séparer le nom de la couche ou son ID de la clause WHERE, comme illustré ci-après. En effet, une virgule est utilisée dans la clause WHERE pour créer la liste de valeurs, telle que ('A11', 'A12', 'A13) ou ('Charlotte', 'Chicago'). Le paramètre de requête peut alors être analysé correctement pour distinguer la couche et la clause WHERE.

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

Comme le nom de la couche peut être modifié, il est fortement recommandé d'utiliser l'ID de la couche dans la requête. Vous pouvez récupérer l’ID de la couche à partir de l’ID de la carte Web, comme illustré ici : http://<your portal url>/sharing/rest/content/items/32a83775654249dcae6b8f2eff5d4072/data/?f=pjson

Attention :

Vérifiez que la carte web est partagée publiquement lorsque vous récupérez l'ID de la couche.

Par exemple, une couche est ajoutée individuellement à la carte, comme illustré ci-dessous au format JSON. L'ID de la couche est Census_8491, le nom du champ POP2000 et la valeur du champ 1211537. Vous pouvez exécuter les requêtes suivantes :

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

Vous pouvez également interroger une chaîne ou les champs ObjectID.

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

Souvent, une couche est ajoutée en tant que groupe d'un service de carte. Pour interroger une sous-couche dans un groupe, utilisez plutôt <layer id_sublayer id> comme ID de la couche. Si l'on prend la couche suivante comme exemple, l'ID de la couche est Census_3217 et l'index d'ID de la sous-couche est 3. L'ID de couche de la sous-couche doit être Census_3217_3. Vous pouvez exécuter les requêtes suivantes :

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', '')

Changer de langue

Pour modifier la langue de l’application, utilisez le paramètre d’URL locale et un code de langue ISO 639-1 de deux lettres. Web AppBuilder prend en charge toutes les langues que ArcGIS Online prend en charge, notamment les codes de langue suivants : ar, bg, 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, and zh-tw.

Pour utiliser Web AppBuilder en français, par exemple, ajoutez locale=fr à l’URL, comme suit :

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

Contrôler l'activation de la mise en page mobile

L'application prend en charge deux styles de mise en page en fonction de la taille d'écran. Une est destinée aux ordinateurs de bureau et l’autre aux appareils mobiles. Lorsque la hauteur ou la largeur d'un écran est inférieure à 600 pixels, la mise en page mobile s'applique automatiquement. Cependant, cela peut entraîner un comportement inattendu lorsque l'application est incorporée dans un site web, par exemple, lorsque la fenêtre contextuelle du site web possède le style de mise en page mobile. Pour contrôler le style de mise en page, utilisez mobileBreakPoint=<pixel number>. Par exemple, vous pouvez conserver le style bureautique tant que la taille d'écran n'est pas inférieure à 300 pixels, comme illustré ci-après :

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