Skip To Content

Especificación ExportWebMap

Al intentar imprimir un mapa utilizando el servicio de geoprocesamiento PrintingTools incluido con ArcGIS Server, debe indicar una representación JSON (notación de objetos JavaScript) del mapa, incluida su información de capas y extensiones. La JSON debe estructurarse según la especificación ExportWebMap de Esri.

Cuando utilice las API Web de ArcGIS, no necesitará preocuparse por la construcción de la notación JSON; las API se ocupan de ello por usted. Sin embargo, este tema se incluye para referencia en caso alguna vez necesita construir la JSON usted mismo. Esto puede suceder si necesita llamar al servicio PrintingTools directamente o ejecutar la herramienta de geoprocesamiento de origen Exportar mapa Web desde otra aplicación.

Nota:

Para una mayor claridad y facilidad de lectura, los ejemplos de JSON de este tema presentan formato. Sin embargo, en la práctica debe entregar JSON sin formato a través de servicios de impresión.

El mapa Web está compuesto de cinco objetos de nivel superior:


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

mapOptions

El objeto mapOptions es necesario y define las propiedades de visualización del mapa.

Sintaxis:Ejemplo

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

Descripción

  • extent (extensión): una propiedad obligatoria que define la extensión del mapa. La referencia espacial del objeto de extensión es opcional; cuando no se proporciona, se asume que está en la referencia espacial del mapa. Cuando la relación de aspecto de la extensión de mapa es diferente que el tamaño del mapa en la página de salida o el exportOptions:outputSize, es posible que observe más entidades en el mapa de salida.
  • scale (opcional): la escala de mapa a la que desee exportar el mapa. Esta propiedad es opcional pero se recomienda para obtener los mejores resultados. La propiedad de escala es especialmente útil cuando los servicios de mapas en este mapa Web tienen capas dependiente de la escala o escalas de referencia establecidas. Debido a que el mapa que está visualizando en la aplicación Web puede ser más pequeño que el tamaño del mapa de salida (por ejemplo, 8,5 x 11 pulgadas o tamaño A4), la escala del mapa de salida será diferente y podrá ver las diferencias en entidades y símbolos de la aplicación Web en comparación con el mapa de salida.

    Cuando se utiliza la escala, prevalece sobre la extensión, pero el mapa de salida se dibuja en la escala solicitada al centro de la extensión.

  • rotation (opcional): esta opción representa el número de grados en que se girará el marco de datos, medido en sentido contrario a las agujas del reloj desde el norte. Para rotar en el sentido de las agujas del reloj, utilice un valor negativo.
  • spatialReference (opcional): la referencia espacial del mapa. El orden de preferencia cuando falta spatialReference, es el siguiente:
    1. mapOptions.extent.spatialReference
    2. baseMap.baseMapLayers.spatialReference
    3. Referencia espacial de la plantilla de mapa
  • time (opcional): si existe una capa sensible al tiempo y desea que se dibuje en un momento determinado, especifique esta propiedad. Esta lista ordenada puede tener uno o dos elementos. Agregar dos elementos (startTime seguido por endTime) para representar una extensión de tiempo o proporcionar un solo elemento de tiempo para representar un instante de tiempo. Los tiempos siempre están en UTC.
  • background (opcional): puede cambiar el color de fondo del mapa. Cuando hay más de un mapa en una disposición, se aplica al mapa asociado a un marco de mapa denominado WEBMAP_MAP_FRAME.

operationalLayers

La lista operationalLayers contiene todas las capas operacionales que se visualizarán en el mapa. El orden del conjunto define el orden de las capas en el mapa. El tipo de cada capa se define por la respuesta del recurso de la dirección URL. Si el recurso no se puede determinar en la dirección URL, la propiedad del tipo define el tipo. Por ejemplo, una capa WMS requiere que especifique "type": "wms". Hay algunas propiedades comunes para todos los tipos de capas operacionales, mientras que otras son específicas para cada tipo de capa operacional.

En caso de capas seguras, especifique el token en una definición de capa. El nombre de usuario y la contraseña no son compatibles como parte de la dirección URL.

Nota:

Para un servicio de mapas, servicio de entidades o un servicio de imágenes utilice una dirección URL señalando el extremo REST del servicio. Los extremos SOAP no son compatibles.

Sintaxis para las capas operacionales

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

Descripción

Nota:

Las propiedades que se describen a continuación son comunes para todos los tipos de capas operativas (por ejemplo, capa de servicio de mapas, gráficos de cliente, capa KML, etc.). Por lo tanto, puede que no estén incluidas en esta sección para cada tipo de capa de operación que figura más adelante.

  • id (opcional): una cadena de caracteres que identifica de manera única una capa operacional. Esto es necesario en su mayor parte para leyendas.
  • layerType: el tipo de capa operativa. Se puede especificar como ArcGISFeatureLayer, ArcGISImageServiceLayer, ArcGISMapServiceLayer, ArcGISTiledImageServiceLayer, ArcGISTiledMapServiceLayer, VectorTileLayer, WebTiledLayer, WMS o KML.
  • url: el punto final de un servicio. No es necesario para "featureCollection".
  • token (opcional): un token para acceder a un servicio protegido.
  • title (opcional): nombre de una capa operacional. Si se muestra en la leyenda, la leyenda en el diseño debe admitirlo.
  • visibility (opcional): el valor predeterminado es true.
  • opacity (opcional): los rangos de valores del 0 al 1 (valor predeterminado); 1 significa totalmente opaco y 0 significa totalmente transparente.
  • minScale (opcional): la capa no se dibujará si se aleja más allá de esa escala.
  • maxScale (opcional): la capa no se dibujará si se acerca más allá de esa escala.

Sintaxis para una capa de servicio de mapasEjemplo

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

Descripción

  • visibleLayers (opcional): conjunto de Id. de subcapas que deben estar visibles en la capa de servicio de mapas. Si esto se omite, la capa operacional se dibuja con los estados visibles predeterminados de cada subcapa. No es necesario especificar el Id. de capa de grupo. Tenga en cuenta que si un servicio de mapas es compatible con capas dinámicas, la configuración de layers tendrá prioridad sobre visibleLayers. Los servicios de mapas que no utilizan dynamicLayers, solamente son compatibles con la propiedad layerDefinition de layers.
  • layers (opcional): lista de las capas a exportar. En los servicios de mapas que utilizan capas dinámicas serán exportadas todas las capas especificadas en el conjunto layers, omitiéndose la opción visibleLayers. Use la propiedad name para definir un nombre para una capa. Normalmente, será necesario si el tipo source de la capa es dataLayer.
  • drawingInfo (opcional): utilice esta opción para sustituir los ajustes de dibujo de una subcapa, por ejemplo, el renderizador de la subcapa.
    • renderer (opcional): si se especifica, sustituye el renderizador original de la subcapa.
  • source (opcional): representa el origen de una capa que se agrega al servicio de mapas dinámicamente a solicitud. Consulte la API REST de ArcGIS para obtener más información sobre cómo definir la fuente.
  • gdbVersion (opcional): especifique esta opción si desea ver las entidades dibujadas desde una versión de geodatabase diferente. Puede definirlo en un nivel de capa operacional para alternar todas las capas a la versión especificada o definir como una subcapa en un conjunto layers para cambiar la versión de la geodatabase para cualquier capa individual.

Sintaxis para una capa de entidadesEjemplo

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

Descripción

  • url (obligatoria): la dirección URL de la capa. Esta propiedad debe finalizar con /dynamicLayer si una capa de entidades está basada en una capa de un servicio de mapas que utiliza capas dinámicas.
  • drawingInfo (opcional): especifica el renderizador para esta capa.
    • Para representar en pantalla utilizando un renderizador temporal, especifique las propiedades latestObservationRenderer, trackLinesRenderer y observationAger aparte del renderizador.
    • observationAger (opcional): el renderizador temporal admite dos tipos de observationAger: rampAger y classBreaksAger. Para cualquier solicitud determinada, una capa puede contener un elemento rampAger o classBreaksAger, pero no ambos.
  • definitionExpression (opcional): sentencia SQL que limita qué entidades se dibujarán.
  • objectIds (opcional): limita qué entidades se dibujan, en función de los Id. de los objetos.
  • timeInfo (opcional):
    • trackIdField: campo que representa de forma exclusiva uno o varios objetos determinados que se están observando. Si este campo está vacío o no existe, solo se dibujará la última observación, utilizando la propiedad latestObservationRenderer.
  • geometry (opcional): limita las entidades que debe dibujar una geometría.
  • geometryType (opcional): esta opción es obligatoria si se especifica una geometría.
  • spatialRel (opcional): relación espacial que se aplicará en la geometría de entrada mientras se realiza la consulta.
  • relationParam (opcional): función de relación espacial que puede aplicarse al realizar la consulta. Un ejemplo de esta función de relación espacial es FFFTTT***.
  • selectionObjectIds (opcional): resalta las entidades con determinados Id. de objeto y el símbolo proporcionado; es necesario configurar selectionSymbol.
  • selectionSymbol (opcional): se resaltarán las entidades que tengan este símbolo. Cuando no se proporciona, pero selectionObjectIds sigue estando incluido, el servicio de impresión utiliza el símbolo predeterminado para resaltarlas.
  • charts (opcional): una capa operativa puede no tener gráficos o tener 1 o varios gráficos. Consulte el elemento de gráfico en las especificaciones del mapa web.
  • gdbVersion (opcional): especifica un nombre de versión de la geodatabase si se utiliza una versión distinta de aquella a la que haga referencia el servicio de entidades o de mapas.
  • source (opcional): esta opción solamente será necesaria si una capa de entidades está basada en un servicio de mapas que utiliza capas dinámicas.

Sintaxis para una capa de servicio de imágenesEjemplo

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

Descripción

Nota:

Consulte la API REST de ArcGIS para obtener más información sobre las capas de servicio de imágenes.

Sintaxis para una capa de servicio 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>"
    ]
  }
]

Descripción

  • type (obligatorio): para capas WMS debe especificarse como wms.
  • format (opcional): formato de imagen solicitado del servidor.
  • transparentBackground (opcional): si esta opción se configura como true, el fondo se tornará transparente, siempre y cuando el formato de imagen solicitado sea compatible con colores transparentes. (JPEG es un ejemplo de un formato de imagen que no es compatible con un color transparente). El valor predeterminado es false
  • visibleLayers (opcional): conjunto de nombres de subcapas que deben estar visibles en la capa de servicio WMS. El orden también es importante; el orden debe cumplir con los requisitos del servicio WMS. Cuando no se encuentren, todas las capas del servicio WMS será visible.
  • layers (opcional): conjunto de nombres de subcapas que se agregarán al mapa. Si no se proporciona, todas las capas de un servicio WMS se agrega al mapa.
  • styles (opcional): utilice esta opción para suprimir un estilo de dibujo predeterminado de subcapa. Si se especifica, asegúrese de que el número y el orden de los estilos coincidan con el conjunto visibleLayers. Si no se desea cambiar el estilo de una subcapa en particular, se puede pasar una cadena vacía, por ejemplo, "styles": ["highways","","population"].
  • version (opcional): la versión de WMS a la que desee conectarse. El valor predeterminado es la última versión compatible con el servicio WMS determinado.

Sintaxis para una capa KMLEjemplo

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

Descripción

  • type (obligatorio): para este tipo de capa, el tipo debe ser kml.
  • url (obligatorio): URL para un archivo kmz.
  • showLabels (opcional): de forma predeterminada es false.
  • visibleFolders: matriz de Id. numéricos de carpetas que serán visibles.

Sintaxis para una imagen del clienteEjemplo

"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....",
  }
]

Descripción

  • type (obligatorio): para este tipo de capa, el type debe ser image.
  • extent (obligatorio): caja de límite mínima adecuada para la imagen.
  • url (opcional): dirección URL de la imagen que desee dibujar. Esto solo es necesario cuando imageData no está aprobada.
  • imageData (opcional): la imagen está codificada como base64. Esto es necesario cuando no se pasa la propiedad url.

Sintaxis para gráficos de clienteEjemplo

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

Descripción

  • layers (obligatorio): colección de capas. Una capa tiene dos propiedades: layerDefinition y featureSet.
  • layerDefinition (obligatorio): contiene propiedades que definen una capa: name, geometryType, drawingInfo, objectIdField y fields.
  • name (opcional): nombre de la capa.
  • geometryType (obligatorio): en el caso de una capa de texto, el valor de geometryType debe ser esriGeometryPoint.
  • drawingInfo (opcional): si falta drawingInfo, los gráficos se representarán utilizando el símbolo.
  • objectIdField (opcional): nombre del campo que contiene Id. de objeto.
  • fields (opcional): conjunto de campos.
  • featureSet (obligatorio): contenedor de entidades.
  • features (obligatorio): colección de entidades.
  • geometry (obligatorio): la geometría que define la entidad o el gráfico.
  • attributes (opcional): conjunto de atributos de entidades.
  • symbol (opcional): si se especifica, este símbolo sustituirá el definido en el renderizador.

Sintaxis de valores separados por coma (CSV), archivo de dirección URLEjemplo

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

Descripción

  • latitudeFieldName (obligatorio): el nombre del campo que contiene la coordenada Y.
  • longitudeFieldName (obligatorio): el nombre del campo que contiene la coordenada X.

Otras propiedades

Nota:

Consulte la API REST de ArcGIS para obtener más información sobre las propiedades siguientes:

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

Sintaxis para definir drawingInfo para un renderizador temporalEjemplo
Nota:

El renderizador temporal no se admite en los Servicios de impresión publicados desde 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
      }
    }
  }
}

Sintaxis para definir un 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>},...]
}

Sintaxis para definir un agerClassBreakInfo


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

Descripción

  • El renderizador temporal solamente es compatible con las capas de entidades, no con las capas de gráficos del lado del cliente ni con las capas dinámicas del servicio de mapas.
  • Alfa es un valor entero que va desde 0 hasta 255.

Resultado de geoprocesamiento

Hay dos maneras en las que se puede incluir un resultado de geoprocesamiento:

  1. Cuando se devuelva un resultado de geoprocesamiento como un conjunto de entidades y se dibuja como gráficos en el lado del cliente, envíe el resultado como un conjunto de entidades.
  2. Cuando el resultado se dibuja mediante el servicio de mapas de resultado de un trabajo, debe agregar una nueva capa de servicio de mapas en operationalLayers y establecer la propiedad URL para señalar el extremo del resultado. Por ejemplo:
    • Resultado de geoprocesamiento de la versión 10.1 o posterior: https://gisserver.domain.com:6080/arcgis/rest/services/GPJobMapServiceName/MapServer/jobs/job_id
    • Resultado de geoprocesamiento de la versión 10.0 y anteriores: https://gisserver.domain.com/arcgis/rest/services/GPServiceName/GPServer/GPTaskName/jobs/job_id/results/out_param_name

Ejemplo: resultado de geoprocesamiento como capa operacional que se dibuja a partir de un servicio de mapas de resultado del trabajo


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

baseMap

El mapa contiene una propiedad baseMap que tiene un título, y una propiedad baseMapLayers que contiene una lista ordenada de baseMapLayers. Cada baseMapLayer debe estar en la misma referencia espacial y esquema de ordenamiento en teselas. Cuando hay una propiedad baseMap, esta define la referencia espacial del mapa.

Sintaxis para baseMapEjemplo

"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",
    }
  ]
}

Sintaxis para una capa de teselas vectoriales como baseMapLayerEjemplo
Nota:

Las capas de teselas vectoriales no se admiten en los Servicios de impresión publicados desde 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
    }
  ]
}

Sintaxis para Bing Maps como basemapLayerEjemplo

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

Sintaxis de OpenStreetMap como basemapLayerEjemplo

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

Descripción

  • url (opcional): si no se especifica, se usa openstreetmap.org de forma predeterminada.
  • credits (opcional): mención opcional que indica quién contribuyó a la capa. El valor de esta propiedad se omite cuando no se especifica url. En su lugar, se utilizan los créditos para el servicio OpenStreetMap predeterminado.

Sintaxis de WebTiledLayer como basemapLayerEjemplo

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

Descripción

  • urlTemplate (obligatoria): plantilla de dirección URL para recuperar las teselas. La plantilla de URL sigue el patrón https://some.domain.com/{level}/{col}/{row}/, donde level corresponde a un nivel de zoom, y col y row representan, respectivamente, la columna y la fila de las teselas.
  • subDomains (opcional): uno de los subDomains especificados se utilizará para reemplazar el marcador de posición {subDomain} en la urlTemplate para formar una URL de solicitud de tesela.
  • tileInfo (opcional): define la información de tesela para la capa, incluidos LOD, filas, columnas, origen y referencia espacial. Si no se proporciona tileInfo, se supone que la capa está en Web Mercator con el esquema de ordenamiento en teselas de Web Mercator. Para obtener información sobre tileInfo, consulte la API de REST ArcGIS.
  • credits (opcional): mención opcional que indica quién contribuyó a la capa.

Sintaxis para WMTS como basemapLayer

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

exportOptions

Este objeto especifica la configuración del mapa de salida.

SintaxisEjemplo

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

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

Descripción

  • dpi (opcional): la resolución, en puntos por pulgada. El valor predeterminado es 96 dpi.
  • outputSize (opcional): tamaño de la imagen, en píxeles. Debe definirse el tamaño cuando una cadena de caracteres vacía o MAP_ONLY (sin comillas) se pase como valor al parámetro layout_template. Si no se especifica layout_template como MAP_ONLY o una cadena de caracteres vacía, layout_template prevalece sobre outputSize.

layoutOptions

Esto define la configuración para diferentes elementos de diseño de página disponibles y es necesario solo cuando se elige una plantilla de diseño disponibles. Los elemento de diseño de página incluyen el título, el texto de copyright, la barra de escala, el nombre de autor y los elementos de texto dinámico, marco de gráfico y marco de tabla.

Nota:

Esta opción reemplaza las propiedades de los elementos existentes solamente. Si un elemento no existe en la plantilla de diseño que se ha elegido, las propiedades relacionadas se ignoran. Por ejemplo, si una plantilla de diseño no tiene un elemento de texto de copyright, no se agrega al diseño ningún elemento de texto de copyright nuevo aunque se especifique el elemento copyrightText en layoutOptions.

Los gráficos deben definirse por completo en las capas operativas antes de usarlas como fuentes de elementos de cuadro de gráfico.

Todas las propiedades de este objeto son opcionales. Cuando se especifica un valor de una propiedad, el valor del elemento de diseño de página correspondiente se sustituye; de lo contrario, el elemento existente se mantiene intacto.

Elemento de texto personalizado ExportWebMapTexto dinámico correspondiente en 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=""/>
Nota:

Puede documentarse sobre dynamicText en la Ayuda de ArcGIS para obtener más información.

SintaxisEjemplo

"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",
        "orderByFields": [ {"field": "<field1>", "order": "ASC | DESC"}, {...} ],
        "rowCount": <row-count>  //limit table to display top n rows
     },

     //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"
      }
    ]
  }
}

Descripción

  • titleText (opcional): el texto del elemento de texto del título del mapa se actualizará si existe en el diseño.
  • authorText (opcional): el texto del elemento de texto del autor se actualizará si existe en el diseño.
  • copyrightText (opcional): el texto del elemento de texto del copyright se actualizará si existe en el diseño.
  • scaleBarOptions (opcional): actualizarán una barra de escala si existe alguna.
    • metricUnit (opcional): configura las unidades de la barra de escala como unidades métricas.
    • metricLabel (opcional): cadena de caracteres que indica cómo deben etiquetarse las unidades; por ejemplo, KM, kilómetros o km. Cuando no se especifica o se aprueba una cadena de caracteres vacía, se utiliza el valor de texto de la unidad.
    • nonMetricUnit (opcional): configura las unidades de la barra de escala como unidades métricas.
    • nonMetricLabel (opcional): cadena de caracteres que indica cómo deben etiquetarse las unidades; por ejemplo, millas o mi. Cuando no se especifica o se aprueba una cadena de caracteres vacía, se utiliza el valor de texto de la unidad.
  • customTextElements (opcional): es un conjunto de pares nombre-valor. Debe utilizar esta opción si desea actualizar el texto de un elemento de texto (que no es texto dinámico) en el diseño de página. Los valores deben ser de cadenas de caracteres.
  • legendOptions (opcional): especifica las propiedades de un elemento de leyenda en el diseño. Observe que cuando un elemento de leyenda en un diseño se encuentra vacío (no tiene una capa en él), es eliminado por el servicio de impresión.
    • operationalLayers (opcional): especifica las capas operacionales cuyas leyendas se agregarán al diseño.
      • id: cadena de caracteres que representa el Id. de la capa. El Id. debe ser único y debe coincidir con el Id. de la capa en el elemento operationalLayers donde se define la capa operacional.
      • subLayerIds (opcional): un conjunto de subcapas cuyos tipos de elementos son cadenas de caracteres o largos y contextuales para el tipo de capa operacional. Por ejemplo, para una capa de servicio de mapas, debe ser un número; para una capa WMS, debe ser una cadena de caracteres. Se recomienda que especifique los valores subLayerIds para las capas operacionales que tengan subcapas. Una vez omitido, en el caso del servicio de mapas y las capas WMS, se agregan las leyendas de todas las subcapas al elemento de leyenda en el diseño. Para capas de entidades o gráficos, no es necesario establecer la propiedad de las subcapas.
  • elementOverrides (opcional): es un elemento que contiene propiedades de anulación de algunos elementos, como una flecha de norte, elemento de texto que contiene elementos de texto dinámico, un elemento de cuadro de tabla o un elemento de cuadro de gráfico en el diseño de página. Puede utilizar GetLayoutTemplatesInfo para averiguar si una plantilla de diseño tiene estos elementos y su definición.
    • visible (opcional): especifica la visibilidad de un elemento. Esto es aplicable a todos los tipos de elementos.
    • sourceLayerId: es obligatorio para elementos de tabla y gráfico.
    • sourceChartId: es obligatorio para elementos de gráfico y aplicable a estos de manera exclusiva. sourceChartId puede encontrarse en una definición de operationalLayer.
    • filterType (opcional): anule el tipo de filtro. Es aplicable a elementos de texto, de tabla y de gráficos.
    • whereClause (opcional): especifique que un filtro de atributo cumpla los estándares SQL. Cuando filterType="Selected", a ambos se aplica el operador AND. Se ignora cuando el elemento es un elemento de gráfico.
    • fields (opcional): especifique el uso de una matriz de campos en un elemento de tabla. No es aplicable a elementos de gráfico. El orden se respeta. Cuando se especifica, se ignora el orden actual del elemento de tabla. Debe superar tanto fields como orderByFields
    • orderByFields (opcional): especifique cómo se ordenan las filas de un elemento de tabla. Cuando se omite, se utiliza el orden del elemento de tabla por campo, si existe.
    • rowCount (opcional): limita la cantidad de filas de un elemento de tabla que desea mostrar. Cuando se omite, se utiliza el recuento de filas del elemento de tabla, si existe.
    • dynamicTextElements: matriz de elemento de texto dinámico con propiedades de anulación. Solo es aplicable a elementos de texto que contienen elementos de texto dinámico.
      • sourceLayerId (obligatorio): cadena de caracteres que representa el Id. de la capa. El Id. debe ser único y debe coincidir con el Id. de la capa en el elemento operationalLayers donde se define la capa operacional.
      • filterType (opcional): anule el tipo de filtro.
      • whereClause (opcional): especifique que un filtro de atributo cumpla los estándares SQL. Cuando filterType="Selected", a ambos se aplica el operador AND.
      • field (opcional): especifique el nombre del campo del que se recuperarán los atributos dinámicos o algunas estadísticas o desde el que se generarán.

reportOptions

Esto define la configuración para diferentes elementos de informe y es necesario solo cuando se elige una plantilla de informe disponible. Los elementos de informe incluyen la fuente, el Id. de la fuente relacionada, la lista de campos, etc.

Nota:

Esta opción reemplaza las propiedades de los elementos existentes solamente. Si un elemento no existe en la plantilla de informe que se ha elegido, las propiedades relacionadas se ignoran. Por ejemplo, si una plantilla de informe no tiene un informe relacionado, los informes de salida no tendrán registros relacionados.

Todas las propiedades de este objeto son obligatorias.

Envíe la solicitud a la tarea Obtener información de plantillas de informe para recuperar los elementos que estén disponibles para cada plantilla de informe.

SintaxisEjemplo

"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"
      }
    }
  }
}

Descripción

  • reportSectionOverrides: este es el único elemento que tiene un elemento reportOptions. Contiene definiciones de algunas secciones como Report Section, Related Report etc. disponibles en el diseño de informe.
  • Cada uno de estos elementos secundarios contiene propiedades de anulación de algunos elementos, como fuentes, asignación de campo, etc., dentro de cada sección.
  • Puede utilizar Obtener información de plantillas de informe para encontrar todos los elementos de una plantilla de informe que puede anular.
  • Consulte Informes en la Ayuda de ArcGIS Pro para obtener más información sobre los informes y sus componentes.

Limitaciones

Los símbolos a nivel de entidad que se invalidan en las capas de notas no son compatibles cuando el tipo de renderizador es de cortes de clase o simple.