Vous trouverez ci-après des exemples d’expressions de rapport concernant des questions d’ordre cartographique.
Toutes les questions qui font appel à une carte (y compris géopoint, géotrace et géoforme) ont des méthodes et des paramètres communs que vous pouvez utiliser pour modifier leur présentation dans les rapports.
Par défaut, une carte dans un rapport utilise la carte Web qui est configurée pour la question. Si l’échelle de la carte est définie sur 0 ou que le paramètre est omis, l’échelle de la carte est déterminée par les entités de la carte de la manière suivante :
- Si la carte comporte une seule entité ponctuelle, son échelle correspond à celle qui est configurée pour la question.
- Si la carte comporte une seule entité linéaire ou surfacique, son échelle est déterminée par l’étendue de l’entité.
- Si la carte comporte plusieurs entités, l’échelle est déterminée par l’étendue de toutes les entités.
Dans les questions de type carte, il est possible de définir l’ID d’élément d’une carte Web et l’échelle de la carte comme paramètres facultatifs. Dans l’exemple suivant, une échelle de carte de 1:100 000 est utilisée :
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000}
Pour toutes les questions de type carte, vous pouvez utiliser la méthode rotate pour faire pivoter la carte dans le sens des aiguilles d’une montre (vue définie par rapport au Nord). Il accepte des valeurs comprises entre 0 et 360.
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | rotate:90}
Si vous ne renseignez pas l’ID d’élément de carte Web, le fond de carte par défaut de la question est utilisé. Si vous définissez l’échelle de la carte sur 0 ou omettez ce paramètre, la carte utilise l’étendue par défaut définie pour la question.
La méthode mapExtent peut être utilisée pour définir explicitement l’étendue d’une carte dans un rapport. L’exemple suivant montre une étendue de carte fixe de Tokyo, Japon :
${location | mapExtent:139.7:35.6:139.9:35.8:4326}
Les questions de type carte prennent également en charge l’expression de taille disponible pour les questions de type image. Vous pouvez utiliser cette expression pour contrôler la résolution de la carte affichée dans le rapport, comme l’illustre l’exemple suivant :
${location | size:400:400}
Vous pouvez utiliser les expressions map, mapScale et size ensemble pour indiquer un ID de carte Web ou une échelle de carte, ainsi qu’une résolution d’image comme l’illustre l’exemple suivant :
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}
Remarque :
Si vous définissez la taille d’une carte tout en utilisant une autre méthode d’expression, size doit être placé en dernière position dans l’expression.
Si la carte contient un grand nombre d’enregistrements, vous pouvez utiliser la méthode mapFilters pour limiter les enregistrements qui s’affichent. Dans l’exemple suivant, le paramètre where permet de filtrer une carte Web constituée d’une seule couche pour afficher les enregistrements dont le champ POP2000 a une valeur supérieure à 999 999 :
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"where=POP2000>999999"}
Dans l’exemple suivant de la méthode mapFilters, le premier paramètre filtre la couche « cities » (villes) (son ID de couche est 18ece64a1fc-layer-5) pour afficher uniquement les trois premiers enregistrements correspondant à la population la plus importante dans l’État de Californie. Séparé du premier paramètre par un signe deux-points, le deuxième paramètre filtre la couche « states » (États) (son ID de couche est 18ece64a1fc-layer-6) pour afficher uniquement l’État de Californie :
${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"'18ece64a1fc-layer-5':where=ST='CA'&orderByFields=POP2000 ASC&resultRecordCount=3":"'18ece64a1fc-layer-6':where=stateName='California'"}
Remarque :
L’ID de couche est une propriété de l’objet couche d’entités du JSON de la carte Web.
Par défaut, une question de type carte s’affiche à l’aide d’un symbole cartographique par défaut, quelle que soit la symbologie définie dans la couche d’entités. Vous pouvez utiliser la méthode drawingInfo pour extraire et utiliser les informations de dessin stockées dans une couche d’entités spécifique, notamment le symbole, l’étiquette et la transparence utilisés. Vous pouvez spécifier ces informations à partir de la couche actuelle ou d’une couche d’entités spécifique via l’URL indiquée.
${location | drawingInfo:"currentLayer"}
${location | drawingInfo:"https://.../FeatureServer/0"}
Si l’enquête ne comporte pas de question de type carte ou que vous créez des rapports pour des couches d’entités sans enquête associée, la géométrie d’un enregistrement peut tout de même être renvoyée en utilisant l’emplacement réservé ${$shape}.
Dans une section de synthèse, une expression concernant une question de type carte affiche plusieurs géométries dans les informations de saisie d’une question. Pour inclure d’autres réponses pour un rapport individuel, indiquez une expression where avec la balise !important. Pour plus d’informations, reportez-vous à la rubrique Syntaxe supplémentaire. L’expression suivante affiche toutes les géométries dans la couche où la valeur du champ d’état est égale à « endommagé » :
${location | where:"status='broken' !important" | map:"<itemID>" | size:400:300}
Remarque :
Dans l’exemple ci-avant, l’échelle de la carte est omise. Si vous définissez l’échelle de la carte sur 0 ou omettez ce paramètre et que la carte contient plusieurs enregistrements, la carte utilise l’étendue combinée de tous les enregistrements.
Vous pouvez faire en sorte que l’expression where soit toujours vraie afin que chaque géométrie de la couche s’affiche :
${location | where:"1=1 !important"}
Cela permet également d’afficher tous les points dans une répétition :
${repeat1.repeatLocation | where:"inspectionId=123 !important" | size:400:300}
Il est également possible d’utiliser le mot-clé $shape pour renvoyer plusieurs géométries de carte.
${$shape | where:"1=1 !important" | drawingInfo:"currentLayer" | size:400:300}
Le mot-clé $map permet d’imprimer une carte qui ne fait référence à aucune question d’enquête.
${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}
Géopoint
Pour les questions de type géopoint, vous pouvez utiliser des expressions pour afficher les valeurs de latitude ou de longitude à partir de la question, comme suit :
${location | getValue:"x"}
${location | getValue:"y"}
Vous ne pouvez pas afficher les deux valeurs avec une expression ; si les deux valeurs sont requises, vous devez utiliser les deux expressions.
Conseil :
Vous pouvez également afficher la valeur d’altitude via une expression similaire, mais seulement si la couche d’entités sous-jacente prend en charge les valeurs z :
${location | getValue:"z"}
Par défaut, les valeurs de latitude, de longitude et d’altitude renvoient la valeur d’origine fournie dans la réponse à l’enquête, sans troncature. Comme ces valeurs peuvent souvent être beaucoup plus longues que nécessaire dans un rapport, vous pouvez utiliser les expressions round ou toFixed pour arrondir la valeur à une décimale donnée :
${location | getValue:"x" | round:3}
${location | getValue:"x" | toFixed:3}
Par défaut, ces valeurs sont générées selon la référence spatiale utilisée par la couche d’entités de l’enquête. Vous pouvez définir une autre référence spatiale sous forme d’un paramètre supplémentaire en fournissant son ID connu (WKID) :
${location | getValue:"x":4326}
Géotrace et géoforme
Pour les questions de type géotrace et géoforme, vous pouvez utiliser l’expression getValue afin d’afficher, respectivement, la longueur de la ligne ou le périmètre du polygone :
${polyline1 | getValue:"length":"meters":"planar"}
Pour les questions de type géoforme, vous pouvez également utiliser l’expression getValue afin d’afficher l’aire du polygone :
${polygon1 | getValue:"area":"hectares":"geodesic"}
Les unités et la méthode de calcul sont des paramètres facultatifs. Les unités suivantes sont acceptées pour la longueur :
- feet
- kilometers
- meters
- miles
- nautical-miles
- yards
Les unités suivantes sont acceptées pour l’aire :
- acres
- hectares
- square-miles
- square-kilometers
- square-meters
- square-feet
- square-yards
Sinon, vous pouvez utiliser l’une des constantes esriSRUnitType ou des constantes esriSRUnit2Type prises en charge par ArcGIS REST API. Dans l’expression, utilisez le code numérique de la constante sans guillemets comme suit :
${polyline1 | getValue:"length":109002:"geodesic"}
Si aucune unité n’est spécifiée, les valeurs par défaut sont kilometers pour la longueur et square-kilometers pour l’aire.
La méthode peut être soit geodesic, soit planar. Si vous ne définissez pas de méthode, geodesic est utilisé par défaut.
Vous avez un commentaire à formuler concernant cette rubrique ?