Skip To Content

Spécification ExportWebMap

Lorsque vous tentez d’imprimer une carte à l’aide du service de géotraitement PrintingTools inclus avec ArcGIS Server, vous devez fournir une représentation JavaScript Object Notation (JSON) de la carte comportant les informations liées à la couche et à l’étendue. La représentation JSON doit être structurée conformément à la spécification Esri ExportWebMap.

Lorsque vous utilisez les API Web ArcGIS vous n'avez pas besoin de vous préoccuper de la création de la JSON, car les API s'en chargent. Cette rubrique est néanmoins fournie à titre de référence, au cas où vous auriez besoin de créer la JSON vous-même. Cela peut être le cas si vous avez besoin d’appeler le service PrintingTools directement ou d’exécuter son outil de géotraitement source Exporter la carte Web à partir d’une autre application.

Remarque :

Pour des raisons de clarté et de lecture, les exemples de JSON de cette rubrique sont formatés. Cependant, en pratique, vous devez transmettre la JSON non formatée via les services d’impression.

La carte Web est constituée de cinq objets de niveau supérieur :


{
  "mapOptions": {},
  "operationalLayers": [],
  "baseMap": [],
  "exportOptions": {},
  "layoutOptions": {},
  "reportOptions": {}
}

mapOptions

L’objet mapOptions, obligatoire, définit les propriétés d’affichage cartographique.

Syntaxe :Exemple

"mapOptions": {
  "extent": {
    "xmin": <xmin>,
    "ymin": <ymin>,
    "xmax": <xmax>,
    "ymax": <ymax>,
    "spatialReference": {<spatialReference>}
  },
  "scale": <mapScale>,
  "rotation": <mapRotation>,
  "spatialReference": {<spatialReference>},
  "time": [
    <timeInstant> | <startTime>,<endTime>
  ],
  "background": {
    "color": [R, G, B, A]
  }
}

"mapOptions": {
  "extent": {
    "xmin": -12933906.537,
    "ymin": 3993856.886,
    "xmax": -12933371.998,
    "ymax": 3994375.189,
    "spatialReference": {
      "wkid": 102100
    }
  },
  "scale": 1234.5,
  "rotation": -45,
  "spatialReference": {
    "wkid": 102100
  },
  "time": [
    1199145600000,
    1230768000000
  ],
  "background": {
    "color": [51, 227, 200, 255]
  }
}

Description

  • extent (obligatoire) : propriété obligatoire définissant l’étendue de la carte.. La référence spatiale de l'objet extent est facultative. Si elle n'est pas fournie, elle est supposée être exprimée dans la référence spatiale de la carte. Lorsque les proportions de l’étendue de la carte sont différentes de la taille de la carte sur la page en sortie ou de exportOptions:outputSize, d’autres entités peuvent s’afficher sur la carte en sortie.
  • scale (facultative) : échelle de la carte à laquelle vous souhaitez exporter la carte. Cette propriété est facultative, mais elle est recommandée en vue d'obtenir des résultats optimaux. La propriété scale est particulièrement utile lorsque les services de carte dans cette carte Web ont des couches dépendantes de l'échelle ou des échelles de référence définies. Puisque la carte que vous affichez dans l'application Web peut être plus petite que la carte en sortie (par exemple, 21 x 29,5 cm ou format A4), l'échelle de la carte en sortie est différente et vous voyez des différences dans les entités et/ou les symboles de l'application Web par rapport à la carte en sortie.

    La propriété scale prend le pas sur l'étendue, mais la carte en sortie est affichée à l'échelle requise centrée sur le centre de l'étendue.

  • rotation (facultative) : représente le nombre de degrés de rotation du bloc de données, mesurés dans le sens anti-horaire à partir du Nord. Pour faire pivoter dans le sens horaire, utilisez une valeur négative.
  • spatialReference (facultative) : référence spatiale de la carte. L’ordre de préférence lorsque spatialReference est manquante est le suivant :
    1. mapOptions.extent.spatialReference
    2. baseMap.baseMapLayers.spatialReference
    3. Référence spatiale du modèle de carte
  • time (facultative) : si une couche temporelle est présente et que vous voulez qu’elle soit affichée à un moment donné, définissez cette propriété. Cette liste d'ordre peut compter un ou deux éléments. Ajoutez deux éléments (startTime suivi de endTime) pour représenter une étendue temporelle ou fournissez un seul élément temporel pour représenter un instant. Les heures sont toujours exprimées en UTC.
  • background (facultative) : vous pouvez changer la couleur d’arrière-plan de la carte. Si la mise en page contient plusieurs cartes, elle s’applique à la carte associée à une fenêtre cartographique nommée WEBMAP_MAP_FRAME.

operationalLayers

La liste operationalLayers contient toutes les couches opérationnelles à afficher sur la carte. L'ordre du tableau définit l'ordre des couches sur la carte. Le type de chaque couche est défini par la réponse de la ressource URL. S'il est impossible de déterminer la ressource à partir de l'URL, la propriété type définit le type. Par exemple, avec une couche WMS, vous devez spécifier "type": "wms" Certaines propriétés sont communes à tous les types de couches opérationnelles, alors que d'autres sont spécifiques à chaque type de couche opérationnelle.

Dans le cas de couches sécurisées, précisez le jeton dans une définition de couches. Le nom d'utilisateur et le mot de passe ne sont pas pris en charge en tant que partie de l'URL.

Remarque :

Pour un service de carte, un service d'entités ou un service d'imagerie, utilisez une URL pointant vers le point de terminaison REST du service. Les points de terminaison SOAP ne sont pas pris en charge.

Syntaxe des couches opérationnelles

"operationalLayers": [
  {
    "id": "<webmapOperationalLayerId>",
    "layerType": "<ArcGISFeatureLayer | ArcGISImageServiceLayer | ArcGISMapServiceLayer | ArcGISTiledImageServiceLayer | ArcGISTiledMapServiceLayer | VectorTileLayer | WebTiledLayer | WFS | WMS | KML>",
    "url": "<url1>",
    "token": "<tokenString1>",
    "title": "<title1>",
    "opacity": <opacity1>,
    "visibility": <true | false>,
    "minScale": <minScale1>,
    "maxScale": <maxScale1>
  }
]

Description

Remarque :

Les propriétés décrites ci-dessous sont communes à tous les types de couches opérationnelles (par exemple, les couches de service de carte, les graphiques côté client, les couches KML, etc.). Ainsi, il est possible qu'elles ne soient pas incluses dans cette section pour chaque type de couche opérationnelle.

  • id (facultative) : chaîne identifiant de manière unique une couche opérationnelle. Elle est obligatoire surtout pour les légendes.
  • layerType : type de couche opérationnelle. ArcGISFeatureLayer, ArcGISImageServiceLayer, ArcGISMapServiceLayer, ArcGISTiledImageServiceLayer, ArcGISTiledMapServiceLayer, VectorTileLayer, WebTiledLayer, WMS ou KML peut être spécifié.
  • url : point d’arrivée d’un service. Elle n’est pas obligatoire pour "featureCollection".
  • token (facultative) : jeton permettant d’accéder à un service sécurisé.
  • title (facultative) : nom d’une couche opérationnelle. S'il s'affiche sur la légende, la légende de la mise en page doit le prendre en charge.
  • visibility (facultative) : la valeur par défaut est true.
  • opacity (facultative) : les valeurs s’échelonnent de 0 à 1 (valeur par défaut), 1 étant complètement opaque et 0 complètement transparent.
  • minScale (facultative) : la couche ne s’affiche pas lorsque le zoom arrière est supérieur à cette échelle.
  • maxScale (facultative) : la couche ne s’affiche pas lorsque le zoom avant est supérieur à cette échelle.

Syntaxe d'une couche de service de carteExemple

"operationalLayers": [
  {
    "url": "<url1>",
    "title": "<title1>",
    "opacity": <opacity2>,
    "gdbVersion": "<gdbVersion>",
    "visibleLayers": [
      <layerId1>,
      <layerId2>
    ],
    "layers": [
      {
        "id": <sublayerId1>,
        "name": <name>,
        "layerDefinition": {
          "definitionExpression": "<definitionExpression>",
          "layerTimeOptions": {
            "useTime": <true | false>,
            "timeDataCumulative": <true | false>,
            "timeOffset": <timeOffset1>,
            "timeOffsetUnits": "<esriTimeUnits>"
          },
          "drawingInfo": {
            "renderer": {<renderer>},
            "transparency": <transparency>,
            "scaleSymbols": <true | false>,
            "showLabels": <true | false>,
            "labelingInfo": {<labelingInfo>},
          },
          "source": {<layerSource>},
          "gdbVersion": "<Geodatabase version name>"
        }
      }
    ]
  }
]

"operationalLayers": [
  {
    "url": "https://servicesbeta.esri.com/ArcGIS/rest/services/HomelandSecurity/operations/MapServer",
    "title": "Homeland security operations",
    "opacity": 0.8,
    "visibleLayers": [
      0,
      1
    ]
  }
]

Description

  • visibleLayers (facultative) : matrice d’ID de sous-couche qui doivent être rendus visibles au sein de la couche de service de carte.. Si cette propriété est omise, la couche opérationnelle s'affiche avec les états visibles par défaut de chaque sous-couche. Il n'est pas nécessaire de préciser l'ID du groupe de couches. Notez que si un service de carte prend en charge les couches dynamiques, layers a priorité sur visibleLayers. Pour les services de carte qui n’utilisent pas dynamicLayers, seul layerDefinition dans la propriété layers est pris en charge.
  • layers (facultative) : liste des couches à exporter. Si les services de carte utilisent des couches dynamiques, toutes les couches spécifiées dans la matrice layers sont exportées, tandis que la matrice visibleLayers est ignorée. Utilisez la propriété name pour définir le nom d’une couche. Ceci est généralement nécessaire lorsque le type source de la couche est dataLayer.
  • drawingInfo (facultative) : cette propriété permet de remplacer les paramètres d’affichage d’une sous-couche, par exemple, le moteur de rendu de la sous-couche.
    • renderer (facultative) : lorsque cette propriété est définie, elle remplace le moteur de rendu d’origine de la sous-couche.
  • source (facultative) : représente la source d’une couche qui est ajoutée au service de carte dynamiquement par requête. Reportez-vous à la rubrique API REST d'ArcGIS pour savoir comment définir la source.
  • gdbVersion (facultative) :indiquez si vous souhaitez afficher les entités tracées à partir d’une autre version de la géodatabase. Vous pouvez soit définir cette option au niveau d’une couche opérationnelle afin de faire basculer toutes les couches vers la version indiquée, soit la définir sous la forme d’une sous-couche d’une matrice layers afin de modifier la version de la géodatabase pour une couche individuelle.

Syntaxe d'une couche d'entitésExemple

"operationalLayers": [
  {
    "url": "<url1>",
    "title": "<title1>",
    "opacity": <opacity2>,
    "layerDefinition": {
      "drawingInfo": {
        "renderer": {<renderer1>}
      },
      "definitionExpression": "<definitionExpression1>",
      "objectIds": [
        <oid1>,
        <oid2>
      ],
      "timeInfo": {  //optional
        "trackIdField": "<trackIdFieldName>"
      },
      "geometry": {<geometry>},
      "geometryType": "<geometryType>",
      "spatialRel": "<spatialRel>",
      "relationParam": "<relationParam>",
      "gdbVersion": "<geodatabaseVersionName>",
      "source": {<layerSource>}
    },
    "selectionObjectIds": [
      <oid1>,
      <oid2>
    ],
    "selectionSymbol": {<symbol>},
    "charts": [ { ... } ] //definition of charts
  }
]

"operationalLayers": [
  {
    "url": "https://servicesbeta.esri.com/ArcGIS/rest/services/Hydrography/Watershed173811/FeatureServer/1",
    "title": "Watershed",
    "opacity": 1,
    "layerDefinition": {
      "drawingInfo": {
        "renderer": {<renderer>}
      },
      "definitionExpression": "Type = 1",
      "objectIds": [
        534,
        434
      ]
    },
    "selectionObjectIds": [
      434
    ],
    "selectionSymbol": {<symbol>}
  }
]

Description

  • url (obligatoire) : URL de la couche. Cette propriété doit se terminer par /dynamicLayer lorsqu’une couche d’entités est basée sur une couche à partir d’un service de carte qui utilise des couches dynamiques.
  • drawingInfo (facultative) : spécifie le moteur de rendu pour cette couche.
    • Pour effectuer un rendu à l’aide du moteur de rendu temporel, indiquez les propriétés latestObservationRenderer, trackLinesRenderer et observationAger en les séparant du moteur de rendu.
    • observationAger (facultative) : le moteur de rendu temporel prend en charge deux types de propriétés observationAger : rampAger et classBreaksAger. Pour une demande donnée, une couche peut contenir soit une propriété rampAger, soit une propriété classBreaksAger, mais pas les deux.
  • definitionExpression (facultative) : instruction SQL restreignant les entités à afficher.
  • objectIds (facultative) : restreint les entités à afficher, en fonction des ID d’objets.
  • timeInfo (facultative) :
    • trackIdField : champ qui représente de manière unique un ou plusieurs objets observés. Si ce champ a la valeur nulle ou est manquant, seule la dernière observation est affichée à l’aide de latestObservationRenderer.
  • geometry (facultative) : restreint les entités qu’une géométrie doit afficher.
  • geometryType (facultative) : cette propriété est obligatoire lorsqu’une géométrie est spécifiée.
  • spatialRel (facultative) : relation spatiale à appliquer sur la géométrie en entrée lors de l’exécution de la requête.
  • relationParam (facultative) : fonction de relation spatiale pouvant être appliquée lors de l’exécution de la requête. Par exemple, FFFTTT***.
  • selectionObjectIds (facultative) : met en surbrillance les entités dotées des ID d’objets donnés avec le symbole fourni. La propriété selectionSymbol doit être définie.
  • selectionSymbol (facultative) : les entités sont mises en surbrillance avec ce symbole. Cette propriété est obligatoire lorsque selectionObjectIds est spécifiée.
  • charts (facultatif) : une couche opérationnelle peut comporter un ou plusieurs diagrammes, ou même aucun. Consultez les spécifications de carte Web pour les éléments de diagramme.
  • gdbVersion (facultative) : définit un nom de version de géodatabase si vous utilisez une version autre que celle référencée par la carte ou le service d’entités.
  • source (facultative) : cette option est obligatoire uniquement lorsqu’une couche d’entités est basée sur un service de carte qui utilise des couches dynamiques.

Syntaxe d'une couche de service d'imagerieExemple

"operationalLayers": [
  {
    "url": "<url1>",
    "title": "<title1>",
    "opacity": <opacity2>,
    "noData": <noDataValue>,
    "format": "<jpgpng | png | png8 | png24 | png32 | jpg | bmp | gif | tiff >",
    "interpolation": "<RSP_BilinearInterpolation | RSP_CubicConvolution | RSP_Majority | RSP_NearestNeighbor>",
    "compressionQuality": <compress>,
    "bandIds": [
      <bandId1>,
      <bandId2>
    ],
    "mosaicRule": "<mosaicRule>",
    "renderingRule": "<renderingRule>",
    "noDataInterpretation": "<esriNoDataMatchAny | esriNoDataMatchAll>"
  }
]

"operationalLayers": [
  {
    "url": "https://ais3/ArcGIS/rest/services/QB16/ImageServer",
    "title": "Satellite image from 1990",
    "opacity": 0.8,
    "bandIds": [
      0,
      1,
      2
    ]
  }
]

Description

Remarque :

Reportez-vous à la rubrique API REST d'ArcGIS pour obtenir plus d'informations sur les couches de service d'imagerie.

Syntaxe d'une couche de service WMS

"operationalLayers": [
  {
    "url": "<url1>",
    "title": "<title1>",
    "type": "wms",
    "opacity": <opacity1>,
    "version": "<wmsServerVersion>",
    "format": "<jpg | png8 | png24 | png32>",
    "transparentBackground": <true | false>,
    "layers": [
      {"name": "<layerName1>"},
      {"name": "<layerName2>"}
    ],
    "visibleLayers": [
      "<layerName1>",
      "<layerName2>"
    ],
    "styles": [
      "<style1>",
      "<style2>"
    ]
  }
]

Description

  • type (facultative) : pour les couches WMS, cette propriété doit être spécifiée sous la forme wms.
  • format (facultative) : format d’image demandé par le serveur.
  • transparentBackground (facultative) : lorsque true, l’arrière-plan devient transparent, à condition que le format d’image requis prenne en charge une couleur transparente. (JPEG est un exemple de format d’image qui ne prend pas en charge la couleur transparente.) La valeur par défaut est false.
  • visibleLayers (facultative) : matrice de noms de sous-couches qui doivent être rendues visibles au sein de la couche de service WMS. L'ordre est important également : il doit être conforme aux besoins du service WMS. En l'absence de cette propriété, toutes les couches du service WMS seront visibles.
  • layers (facultative) : matrice de noms de sous-couches à ajouter à la carte. En l'absence de cette propriété, toutes les couches d'un service WMS seront ajoutées à la carte.
  • styles (facultative) : cette propriété permet de remplacer le style d’affichage par défaut d’une sous-couche. Lorsqu’elle est spécifiée, vérifiez que le nombre et l’ordre des styles correspondent à ceux de la matrice visibleLayers. Si vous ne souhaitez pas changer le style d’une sous-couche en particulier, vous pouvez utiliser une chaîne vide, par exemple, "styles": ["highways","","population"].
  • version (facultative) : version de WMS à laquelle vous voulez vous connecter. Par défaut, il s'agit de la dernière version en date prise en charge par le service WMS donné.

Syntaxe d'une couche KMLExemple

"operationalLayers": [
  {
    "type": "kml",
    "url": "<url1>",
    "title": "<title1>",
    "showLabels": "<true | false>",
    "visibleFolders": [
      <folderId1>,
      <folderId2>
    ]
  }
]

"operationalLayers": [
  {
    "type": "kml",
    "url": "https://myMachine/.../vermont.kmz",
    "title": "Vermont weather stations",
    "opacity": 0.75,
    "showLabels": true,
    "visibleFolders": [
      0,
      1,
      2
    ]
  }
]

Description

  • type (obligatoire) : pour ce type de couche, le type doit être kml.
  • url (obligatoire) : URL d’un fichier kmz
  • showLabels (facultative) : par défaut, la valeur est false.
  • visibleFolders : matrice d’ID numériques de dossiers qui seront visibles.

Syntaxe d'une image côté clientExemple

"operationalLayers": [
  {
    "type": "image",
    "title": "<title1>",
    "opacity": <opacity2>,
    "extent": {
      "xmin": <xmin>,
      "ymin": <ymin>,
      "xmax": <xmax>,
      "ymax": <ymax>,
      "spatialReference": {<spatialReference>}
    },
    "url": "<url1>",
    "imageData": "<base64EncodedImageData>"
  }
]

"operationalLayers": [
  {
    "type": "image",
    "title": "heat map",
    "opacity": 0.75,
    "extent": {
      "xmin": -12933906.537,
      "ymin": 3993856.886,
      "xmax": -12933371.998,
      "ymax": 3994375.189,
      "spatialReference": {
        "wkid": 102100
      }
    },
    "url": "https://myMachine/anImage.png",
    "imageData": "iVBORw0KGg....",
  }
]

Description

  • type (obligatoire) : pour ce type de couche, la propriété type doit être image.
  • extent (obligatoire) : emprise minimale dans laquelle l’image vient s’ajuster.
  • url (facultative) : URL d’une image que vous souhaitez afficher. Cette propriété est obligatoire uniquement si imageData n’est pas transmise.
  • imageData (facultative) : image codée en base64. Cette propriété est obligatoire si la propriété url n’est pas transmise.

Syntaxe des graphiques côté clientExemple

"operationalLayers": [
  {
    "featureCollection": {
      "layers": [
        {
          "layerDefinition": {
            "name": "<layerName>",
            "geometryType": "<esriGeometryType>",
            "drawingInfo": {<drawingInfo>},
            "objectIdField": "<objectIdFieldName>",  //optional
            "fields": [  //optional
              {
                "name": "<fieldName>",
                "type": "<esriFieldType>",
                "alias": "<fieldAliasName>"
              }
            ]
          },
          "featureSet": {
            "features": [
              {
                "geometry": {<geometry>},
                "attributes": {  //optional
                  "<fieldName>": "<value>"
                },
                "symbol": {<symbol>}  //overrides symbol defined in the renderer
		            }
            ]
          }
        }
      ]
    }
  }
]

"operationalLayers": [
  {
    "id": "map_graphics",
    "featureCollection": {
      "layers": [
        {
          "layerDefinition": {
            "name": "pointLayer",
            "geometryType": "esriGeometryPoint",
            "drawingInfo": {
              "renderer": {
                "type": "simple",
                "symbol": {
                  "type": "esriSMS",
                  "style": "esriSMSCircle",
                  "color": [
                    76,
                    115,
                    0,
                    255
                  ],
                  "size": 20,
                  "outline": {
                    "color": [
                      255,
                      0,
                      0,
                      255
                    ],
                    "width": 1
                  }
                }
              }
            }
          },
          "featureSet": {
            "features": [
              {
                "geometry": {
                  "x": -10253568.722284,
                  "y": 5463514.62565701,
                  "spatialReference": {
                    "wkid": 102100
                  }
                }
              },
              {
                "geometry": {
                  "x": -13267022.125398,
                  "y": 5463514.62565701,
                  "spatialReference": {
                    "wkid": 102100
                  }
                },
                "symbol": {
                  "color": [
                    255,
                    138,
                    255,
                    191
                  ],
                  "size": 12,
                  "type": "esriSMS",
                  "style": "esriSMSSquare"
                }
              }
            ]
          }
        }
      ]
    }
  }
]

Description

  • layers (obligatoire) :ensemble de couches. Une couche comporte deux propriétés : layerDefinition et featureSet.
  • layerDefinition (obligatoire) : contient les propriétés qui définissent une couche : name, geometryType, drawingInfo, objectIdField et fields.
  • name (facultative) : nom de la couche.
  • geometryType (obligatoire) : pour une couche de texte, la propriété geometryType doit être esriGeometryPoint.
  • drawingInfo (facultative) : en l’absence de drawingInfo, les graphiques sont représentés à l’aide de symboles.
  • objectIdField (facultative) : nom du champ qui contient les ID d’objets.
  • fields (facultative) : ensemble de champs.
  • featureSet (obligatoire) : conteneur d’entités.
  • features (obligatoire) : ensemble d’entités.
  • geometry (obligatoire) : géométrie qui définit l’entité ou le graphique.
  • attributes (facultative) : ensemble d’attributs d’entités.
  • symbol (facultative) : si cette propriété est définie, ce symbole remplace celui défini dans le moteur de rendu.

Syntaxe du fichier CSV (valeurs séparées par des virgules) par URLExemple

"operationalLayers": [
  {
    {
      "type": "CSV",
      "url": "<url>",
      "layerDefinition": {
        "drawingInfo": {
          "renderer": {<renderer>}
        }
      },
      "locationInfo": {
        "latitudeFieldName": "<latitudeFieldName>",
        "longitudeFieldName": "<longitudeFieldName>"
      }
    }
  }
]

"operationalLayers": [
  {
    "type": "CSV",
    "url": "https://servicesbeta.esri.com/demos/exp/data/earthquakes.csv",
    "id": "Earthquakes",
    "title": "Earthquakes",
    "visibility": true,
    "opacity": 1,
    "layerDefinition": {
      "drawingInfo": {
        "renderer": {
          "symbol": {
            "height": 15,
            "type": "esriPMS",
            "url": "https://static.arcgis.com/images/Symbols/Basic/RedSphere.png",
            "width": 15
          },
          "type": "simple"
        },
        "transparency": 0
      }
    },
    "locationInfo": {
      "latitudeFieldName": "lat",
      "longitudeFieldName": "lon"
    }
  }
]

Description

  • latitudeFieldName (obligatoire) : nom du champ qui contient la coordonnée Y
  • longitudeFieldName (obligatoire) : nom du champ qui contient la coordonnée X.

Autres propriétés

Remarque :

Reportez-vous à la rubrique ArcGIS REST API pour plus d’informations sur les propriétés suivantes.

  • source
  • renderer
  • symbol
  • textSymbol
  • labelingInfo
  • geometry
  • geometryType
  • spatialRel
  • relationParam

Syntaxe de définition de drawingInfo pour un moteur de rendu temporelExemple
Remarque :

Le moteur de rendu temporel n’est pas pris en charge par les services d’impression publiés depuis ArcGIS Pro.


"drawingInfo": {
  "observationAger": {<symbolAger>},
  "latestObservationRenderer": {<renderer>},
  "trackLinesRenderer": {<renderer>},
  "renderer": {<renderer>}
}

"drawingInfo": {
  "observationAger": {
    "alphaRange": [
      0,
      255
    ]
  },
  "latestObservationRenderer": {
    "type": "simple",
    "symbol": {
      "type": "esriPMS",
      "url": "https://help.arcgis.com/.../hurr_100_icon.png",
      "contentType": "image/png",
      "width": 30,
      "height": 30
    }
  },
  "trackLinesRenderer": {
    "type": "simple",
    "symbol": {
      "type": "esriSLS",
      "style": "esriSLSSolid",
      "width": 1,
      "color": [
        0,
        0,
        0,
        255
      ]
    }
  },
  "renderer": {
    "type": "simple",
    "symbol": {
      "type": "esriSMS",
      "style": "esriSMSCircle",
      "size": 24,
      "outline": {
        "color": [
          255,
          255,
          255,
          255
        ],
        "width": 1
      }
    }
  }
}

Syntaxe de définition d’une propriété symbolAger


//rampAger
{
  "colorRange": [
    {<color>}, //for oldest events
    {<color>}  //for newest events
  ],
  "alphaRange": [
    <alpha>, //for oldest events
    <alpha>  //for newest events
  ],
  "sizeRange": [
    <size>, //for oldest events
    <size>  //for newest events
  ]
}

//classBreaksAger
{
  "timeUnits": "<esriTimeUnits>",
  "agerClassBreakInfos": [{<agerClassBreakInfo>},...]
}

Syntaxe de définition d’une propriété agerClassBreakInfo


{
  "oldestAge": <age>,
  "color": {<color>},
  "alpha": <alpha>,
  "size": <size>
}

Description

  • Le moteur de rendu temporel est pris en charge uniquement par les couches d'entités, et non par les couches de graphiques côté client ou les couches de service de carte dynamique.
  • Alpha est un nombre entier compris entre 0 et 255.

Résultat du géotraitement

Il existe deux façons d'inclure un résultat de géotraitement :

  1. Lorsque le résultat d'un géotraitement revient sous la forme d'un jeu d'entités et qu'il s'affiche sous la forme de graphiques côté client, envoyez le résultat en tant que collection d'entités.
  2. Lorsque le résultat est affiché par le service de carte de résultat d’une tâche, ajoutez une nouvelle couche de service de carte dans operationalLayers et définissez la propriété URL de manière à ce qu’elle pointe sur le point de terminaison du résultat. Par exemple :
    • Résultat du géotraitement du serveur 10.1 ou version ultérieure : https://gisserver.domain.com:6080/arcgis/rest/services/GPJobMapServiceName/MapServer/jobs/job_id
    • Résultat du géotraitement du serveur 10.0 et versions antérieures : https://gisserver.domain.com/arcgis/rest/services/GPServiceName/GPServer/GPTaskName/jobs/job_id/results/out_param_name

Exemple : Résultat du géotraitement en tant que couche opérationnelle affichée par un service de carte de résultat de tâche.


"operationalLayers": [
  {
    "url": "https://gisserver.domain.com:6080/arcgis/rest/services/Buffer/MapServer/jobs/j9aa6c36d59f44829a0daeadb2d0ff87b",
    "title": "Geoprocessing Result"
  }
]

baseMap

La carte contient une propriété baseMap, dotée d’un titre, et une propriété baseMapLayers qui contient une liste triée de baseMapLayers. Chaque propriété baseMapLayer doit être exprimée dans la même référence spatiale et la même structure de tuilage. Lorsqu’une propriété baseMap est présente, elle définit la référence spatiale de la carte.

Syntaxe de baseMapExemple

"baseMap": {
  "title": "<title>",
  "baseMapLayers": [
    {
      "url": "<url1>",
      "opacity": <opacity1>
    },
    {
      "url": "<url2>",
      "opacity": <opacity2>
    }
  ]
}

"baseMap": {
  "title": "Shared Imagery Basemap",
  "baseMapLayers":  [
    {
      "url": "https://services.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer",
    },
    {
      "url": "https://services.arcgisonline.com/ArcGIS/rest/services/CSP_Imagery_World_2D/MapServer",
    }
  ]
}

Syntaxe pour couche de tuiles vectorielles en tant que baseMapLayerExemple
Remarque :

Les couches de tuiles vectorielles fonctionnent uniquement avec les services d’impression publiés depuis ArcGIS Pro.


"baseMap": {
  "title": "<title>",
  "baseMapLayers": [
    {
      "id": "<id1>",
      "type": "VectorTileLayer",
      "layerType": "VectorTileLayer",
      "title": "<title1>",
      "styleUrl": "<Url1>"
      "visibility": <true | false>,
      "opacity": <opacity1>
    }
  ]
}

"baseMap": {
  "title": "VectorTileLayer as BaseMap",
  "baseMapLayers": [
    {
      "id": "VectorTile_1933",
      "type": "VectorTileLayer",
      "layerType": "VectorTileLayer",
      "title": "World_Basemap",
      "styleUrl": "https://basemaps.arcgis.com/b2/arcgis/rest/services/World_Basemap/VectorTileServer/resources/styles/root.json",
      "visibility": true,
      "opacity": 1
    }
  ]
}

Syntaxe pour Bing Maps en tant que basemapLayerExemple

"baseMap": {
  "title": "<title>",
  "baseMapLayers":  [
    {
      "id": "<id1>",
      "type": "<BingMapsRoad | BingMapsAerial | BingMapsHybrid>",
      "culture": "<Bing Maps supported culture>",
      "key": "<bing_key>" //optional
    }
  ]
}

"baseMap": {
  "title": "Bing Maps",
  "baseMapLayers":  [
    {
      "id": "BingMap",
      "visibility": true,
      "type": "BingMapsRoad",
      "culture": "fr-ca"
    }
  ]
}

Syntaxe pour OpenStreetMap en tant que basemapLayerExemple

"baseMap": {
  "title": "<title>",
  "baseMapLayers":  [
    {
      "type": "OpenStreetMap",
      "url": "<url>",  //optional
      "credits": "<credits>"  //optional
    }
  ]
}

"baseMap": {
  "title": "OpenCycle Map",
  "baseMapLayers":  [
    {
      "type": "OpenStreetMap",
      "url": "https://a.tile.opencyclemap.org/cycle"
    }
  ]
}

Description

  • url (facultative) : lorsque cet argument n’est pas spécifié, la propriété openstreetmap.org est utilisée par défaut.
  • credits (facultative) : accusé de réception facultatif indiquant qui a contribué à la couche. La valeur de cette propriété est ignorée si url n’est pas spécifiée. En revanche, les crédits du service OpenStreetMap par défaut sont utilisés.

Syntaxe pour WebTiledLayer en tant que basemapLayerExemple

"baseMap": {
  "title": "<title>",
  "baseMapLayers":  [
    {
      "type": "WebTiledLayer",
      "urlTemplate": "<urlTemplate1>",
      "subDomains": [  //optional
        <subDomain1>,
        <subDomain2>
      ],
      "tileInfo": {},  //optional
      "credits": "<credits>"  //optional
    }
  ]
}

"baseMap": {
  "title": "MapQuest",
  "baseMapLayers":  [
    {
      "type": "WebTiledLayer",
      "urlTemplate": "https://{subDomain}.mqcdn.com/tiles/1.0.0/vx/map/{level}/{col}/{row}.jpg,
      "subDomains": [
        "mtile01", 
        "mtile02", 
        "mtile03", 
        "mtile04"
      ]
    }
  ]
}

Description

  • urlTemplate (obligatoire) : modèle d’URL permettant de récupérer les tuiles. Le modèle d’URL présente le format suivant : https://some.domain.com/{level}/{col}/{row}/, où level correspond au niveau de zoom, et col et row représentent la colonne et la ligne correspondant à la tuile, respectivement.
  • subDomains (facultative) : un des subDomains spécifiés sera utilisé pour remplacer l’emplacement réservé {subDomain} dans urlTemplate afin de former l’URL de demande de tuile.
  • tileInfo (facultative) : définit les informations sur les tuiles de la couche, y compris les niveaux de détail, les lignes, les colonnes, l’origine et la référence spatiale. Si aucune donnée n’est spécifiée pour tileInfo, la couche est censée se trouver dans Web Mercator avec la structure de tuilage Web Mercator. Pour plus d’informations sur tileInfo, reportez-vous à la rubrique ArcGIS REST API.
  • credits (facultative) : accusé de réception facultatif indiquant qui a contribué à la couche.

Syntaxe pour WMTS en tant que basemapLayer

"baseMap": {
  "title": "<title>",
  "baseMapLayers":  [
    {
      "type": "wmts",
      "url": "<url1>",
      "layer": "<layerName>", //optional
      "style": "<style>", //optional
      "format": "<imageFormat>", //optional
      "tileMatrixSet": "<tileMatrixSet>"  //optional
    }
  ]
}

exportOptions

Cet objet spécifie les paramètres pour la carte en sortie.

SyntaxeExemple

"exportOptions": {
  "dpi": <dpi>,
  "outputSize":  [
    <width>,
    <height>
  ]
}

"exportOptions": {
  "dpi": 300,
  "outputSize":  [
    500,
    500
  ]
}

Description

  • dpi (facultative) : résolution exprimée en points par pouce. La valeur par défaut est 96 ppp.
  • outputSize (facultative) : taille de la carte en pixels. La taille doit être définie lorsqu’une chaîne vide ou MAP_ONLY (sans guillemet) est transmise comme valeur au paramètre layout_template. Si layout_template n’est pas spécifié sous la forme MAP_ONLY ou d’une chaîne vide, layout_template est prioritaire sur outputSize.

layoutOptions

Cette propriété définit les paramètres des différents éléments de mise en page disponibles. Elle est nécessaire uniquement lorsqu'un modèle de mise en page disponible est choisi. Ces éléments de mise en page sont notamment le titre, le texte de droit d’auteur, la barre d’échelle, le nom de l’auteur, les éléments de texte dynamiques et personnalisés, ainsi que les éléments de fenêtre de diagramme et de fenêtre de table.

Remarque :

Cette option remplace les propriétés d'éléments existants uniquement. Si un élément n'existe pas dans le modèle de mise en page choisi, les propriétés associées sont ignorées. Par exemple, si un modèle de mise en page ne possède pas d’élément de texte de droit d’auteur, aucun nouvel élément de texte de droit d’auteur n’est ajouté, même si l’élément copyrightText est spécifié dans la propriété layoutOptions.

Les diagrammes doivent être entièrement définis dans les couches opérationnelles pour pouvoir être utilisés comme sources pour les éléments de fenêtre de diagramme.

Toutes les propriétés de cet objet sont facultatives. Quand la valeur d'une propriété est spécifiée, la valeur de l'élément de mise en page correspondante est remplacée. Dans le cas contraire, l'élément existant reste tel quel.

Élément de texte personnalisé ExportWebMapTexte dynamique correspondant dans ArcGIS Pro
titleText<dyn type="layout" property="metadata" attribute="title" emptyStr=""/>
authorText<dyn type="layout" property="metadata" attribute="contactname" emptyStr=""/>
copyrightText<dyn type="layout" property="metadata" attribute="credits" emptyStr=""/>
Remarque :

Pour plus d’informations, consultez la rubrique concernant dynamicText dans l’aide ArcGIS.

SyntaxeExemple

"layoutOptions": {
  "titleText": "<title>",
  "authorText": "<authorName>",
  "copyrightText": "<copyright>",
  "scaleBarOptions":  {
    "metricUnit": "<esriMeters | esriKilometers>" ,
    "metricLabel": "<metricUnitLabel>",
    "nonMetricUnit": "<esriFeet | esriYards | esriMiles | esriNauticalMiles>" ,
    "nonMetricLabel": "<nonMetricUnitLabel>"
  },
  "customTextElements": [
    {"<textElementName1>": "<value1>"},
    {"<textElementName2>": "<value2>"}
  ],
  "elementOverrides": {
     "<elementName1>":  {"visible" : true | false},
     "<elementName2>":  {"visible" : true | false},
     
     //for dynamic text elements
     "<dynTxtElmName1>": {
        "visible": true | false,
        // a text element can have multiple dynamic text elements
        "dynamicTextElements": [
          //element's index must match their position inside a text element
          {
            "sourceLayerId": "<webmapOperationalLayerId>",  //required
            "field": "<field-name>",
            "filterType": "<all | visible | selected>",
            "whereClause": "SQLWhereClause"
          },
          {
            ...
          }
        ]
      },

     //for table frame elements
     "<tableElmName1>": {
        "visible": true | false,
        "sourceLayerId": "<webmapOperationalLayerId>",  //required
        "field": ["field1", "field2", ...], //order is honored
        "filterType": "<all | visible | selected>",
        "whereClause": "SQLWhereClause"
     },

     //for chart frame elements
     "<chartElmName1>": {
        "visible": true | false,
        "sourceLayerId": "<webmapOperationalLayerId>",  //required
        "sourceChartId": "<chartId>",                   //required
        "filterType": "<all | visible | selected>"
     }
  },
  "legendOptions": {
    "operationalLayers": [
      {
        "id": "<webmapOperationalLayerId>",
        "sublayerIds": [  //array of string or number
          <mapServerSublayerId1>,
          <mapServerSublayerId2>
        ]
      }
    ]
  }
}

"layoutOptions": {
  "titleText": "City Land Use Map",
  "authorText": "Print by: XYZ",
  "copyrightText": "© esri",
  "scaleBarOptions":  {
    "metricUnit": "esriKilometers",
    "metricLabel": "km",
    "nonMetricUnit": "esriMiles",
    "nonMetricLabel": "mi"
  }
  "customTextElements": [
    {"townshipName": "Town ABC"}
  ],
  "elementOverrides": {
    "myNorthArrow":  {"visible" : true}
  },
  "legendOptions": {
    "operationalLayers": [
      { //for dynamic mapservicelayer
        "id": "myMapserviceLayer",
        "subLayerIds": [ //array of integer
          0,
          1 
        ]
      },
      { //for WMS layer
        "id": "myWMSLayer",
        "subLayerIds": [ //array of string
          "layer1",
          "layer2" 
        ]
      },
      { //for FeatureLayer
        "id": "myFeatureLayer"
      }
    ]
  }
}

Description

  • titleText (facultative) : le texte de l’élément de texte de titre de carte est mis à jour s’il existe sur la mise en page.
  • authorText (facultative) : le texte de l’élément de texte d’auteur est mis à jour s’il existe sur la mise en page.
  • copyrightText (facultative) : le texte de l’élément de texte de droit d’auteur est mis à jour s’il existe sur la mise en page.
  • scaleBarOptions (facultative) : cette propriété met à jour une barre d’échelle si elle existe.
    • metricUnit (facultative) : définit les unités de la barre d’échelle en unités métriques.
    • metricLabel (facultative) : chaîne indiquant la façon dont les unités doivent être étiquetées, par exemple, KM, kilomètres ou km. Si cette propriété n'est pas spécifiée ou si une chaîne vide est transmise, la valeur de texte de l'unité est utilisée.
    • nonMetricUnit (facultative) : définit les unités de la barre d’échelle en unités non métriques.
    • nonMetricLabel (facultative) : chaîne indiquant la façon dont les unités doivent être étiquetées, par exemple, Milles ou mi. Si cette propriété n'est pas spécifiée ou si une chaîne vide est transmise, la valeur de texte de l'unité est utilisée.
  • customTextElements (facultative) : matrice de paires nom-valeur. Vous devez utiliser cette propriété pour mettre à jour le texte d'un élément de texte (texte non dynamique) sur la mise en page. Les valeurs doivent être des chaînes.
  • legendOptions (facultative) : spécifie les propriétés d’un élément de légende sur la mise en page. Notez que lorsqu'un élément de légende sur une mise en page est vide (lorsqu'il ne contient aucune couche), il est supprimé par le service d'impression.
    • operationalLayers (facultative) : spécifie les couches opérationnelles dont la légende sera ajoutée à la mise en page.
      • id : chaîne représentant l’identifiant de la couche. Cet identifiant doit être unique et doit correspondre à l’ID de la couche dans l’élément operationalLayers où la couche opérationnelle est définie.
      • subLayerIds (facultative) : matrice de sous-couches dont les éléments sont de type chaîne ou long et contextuel au type de couche opérationnelle. Par exemple, pour une couche de service de carte il doit s'agir d'une couche. Pour une couche WMS, il doit s'agir d'une chaîne. Il est recommandé de spécifier des valeurs subLayerIds pour les couches opérationnelles possédant des sous-couches. Si celles-ci sont omises, dans le cas d'un service de carte et de couches WMS, les légendes provenant de toutes les sous-couches sont ajoutées à l'élément de légende sur la mise en page. Pour les couches d'entités ou de graphiques, la propriété sublayers n'a pas besoin d'être définie.
  • elementOverrides (facultatif) : il s’agit d’un élément contenant les propriétés de remplacement de certains éléments tels qu’une flèche d’orientation vers le nord, un élément de texte contenant des éléments de texte dynamique, un élément de fenêtre de table ou de fenêtre de diagramme sur la mise en page. Vous pouvez utiliser la tâche GetLayoutTemplatesInfo pour déterminer si un modèle de mise en page comporte ces types d’éléments et leurs définitions.
    • visible (facultatif) : indiquez la visibilité d’un élément. Cette option est applicable à tous les types d’éléments.
    • sourceLayerId : obligatoire pour les éléments de table et de diagramme.
    • sourceChartId : obligatoire et applicable uniquement aux éléments de diagramme. sourceChartId se trouve à l’intérieur d’une définition operationalLayer.
    • filterType (facultatif) : remplacez le type de filtre. Applicable aux éléments de texte dynamique, aux éléments de table et aux éléments de diagramme.
    • whereClause (facultatifl) : spécifiez un filtre attributaire conforme à la norme SQL. Si filterType="Selected", ils sont tous deux reliés par AND (ET). Ce paramètre est ignoré lorsque l’élément est un élément de diagramme.
    • fields (facultatif) : indiquez un tableau de champs à utiliser dans un élément de table. Ne s’applique pas à un élément de diagramme. L’ordre est respecté.
    • dynamicTextElements : ensemble d’éléments de texte dynamique dont les propriétés ont été remplacées. Applicable uniquement aux éléments de texte contenant des éléments de texte dynamique.
      • sourceLayerId (obligatoire) : chaîne représentant l’identifiant de la couche. Cet identifiant doit être unique et doit correspondre à l’ID de la couche dans l’élément operationalLayers où la couche opérationnelle est définie.
      • filterType (facultatif) : remplacez le type de filtre.
      • whereClause (facultatifl) : spécifiez un filtre attributaire conforme à la norme SQL. Si filterType="Selected", ils sont tous deux reliés par AND (ET).
      • field (facultatif) : indiquez le nom du champ à partir duquel seront extraits ou générés les attributs dynamiques ou certaines statistiques.

reportOptions

Cette propriété définit les paramètres des différents éléments de rapport disponibles. Elle est nécessaire uniquement lorsqu’un modèle de rapport disponible est choisi. Les éléments de rapport incluent des identifiants source et les identifiants source associés, une liste de champs, etc.

Remarque :

Cette option remplace les propriétés d'éléments existants uniquement. Si un élément n’existe pas dans le modèle de rapport choisi, les propriétés associées sont ignorées. Par exemple, si un modèle de rapport n’est pas associé à un rapport, les rapports en sortie ne comportent pas de rapports associés.

Toutes les propriétés de cet objet sont obligatoires.

Envoyez la requête à la tâche Get Report Templates Info (Obtenir des informations sur les modèles de rapport) pour extraire les éléments disponibles pour chaque modèle de rapport.

SyntaxeExemple

"reportOptions": {
  "reportSectionOverrides": {
    "Report Section": {
      "name": "<report title>",
      "sourceId": "<operation layer/table id>",

      //field mapping
      "fieldElements": {
        "<fieldElementName1>": "<fieldName1>",
        "<fieldElementName2>": "<fieldName2>",
        "<fieldElementName3>": "<fieldName3>",
        ...
      },

      //group section when available
      "groupSections": {
        "<groupSectionElementName>": "<groupByFieldName1>"
      },

      //statistic elements when available
      "statisticElements": {
        "<statElementName1>": "<fieldName1>"
      }
    },

    //related report section when available
    "Related Report": {
      "sourceId": "<related operational layer/table id",

      //mapping between field element and field name
      "fieldElements": {
        "<fieldElementName1>": "<fieldName1>",
        "<fieldElementName2>": "<fieldName2>"
        ...
      },

      //field headers
      "fieldLabelElements": {
        "<fieldLabelElementName1>": "<fieldHeader1>",
        "<fieldLabelElementName2>": "<fieldHeader2>"
        ...
      },

      "groupSections": {
        "<groupHeaderElementName>": "<group header>"
      }
    }
  }
}

"reportOptions": {
  "reportSectionOverrides": {
    "Report Section": {
      "name": "Esri Theme Parks",
      "sourceId": "18a387780ae-layer-3",
      "fieldElements": {
        "Field 1": "Website",
        "Field 2": "City",
        "Field 3": "State",
        "Field 4": "OpeningDay",
        "Field 5": "ChildPrice",
        "Field 6": "AdultPrice"
      },
      "groupSections": {
        "Group field: [group-field-value]": "Name"
      },
      "statisticElements": {
        "Count Statistic 1": "Name"
      }
    },
    "Related Report": {
      "sourceId": "18a387780b0-layer-4",
      "fieldElements": {
        "Related Field 1 1": "AttractionName",
        "Related Field 2 1": "Description"
      },
      "fieldLabelElements": {
        "Related Field Label 1": "Name",
        "Related Field Label 2": "Description"
      },
      "groupSections": {
        "[related-report-name]: Group Header: [group-field-value]": "AttractionType"
      }
    }
  }
}

Description

  • reportSectionOverrides : il s’agit du seul élément figurant dans un élément reportOptions. Il contient les définitions de certaines sections comme Report Section, Related Report notamment, disponibles dans la mise en page du rapport.
  • Chacun de ces éléments enfant contient les propriétés de remplacement de certains éléments, comme notamment les sources et l’appariement de champs, dans chaque section.
  • Vous pouvez utiliser la tâche Get Report Templates Info (Obtenir des informations sur les modèles de rapport) pour trouver tous les éléments que vous pouvez remplacer dans un modèle de rapport.
  • Pour plus d’informations sur les rapports et leurs composants, consultez la rubrique Rapports dans l’aide ArcGIS Pro.

Limitations

Les symboles de niveau d'entités dans les couches de notes ne sont pas pris en charge lorsque le type de moteur de rendu est interruptions de classe ou simple.