Skip To Content

Especificación ExportWebMap

En este tema

Cuando intenta imprimir un mapa utilizando el servicio de geoprocesamiento PrintingTools incluido con ArcGIS Server, debe proporcionar una representación del mapa de notación de objetos de JavaScript (JSON), incluida la capa y la información de extensión. 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 el servicio PrintingTools directamente o ejecutar la herramienta de geoprocesamiento de origen Exportar mapa Web desde otra aplicación.

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

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

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

Descripción

  • 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.
  • escala (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.

  • rotación (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
  • tiempo (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.

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 el "tipo": "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>",
  "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.
  • url: el punto final de un servicio. No es necesario para "featureCollection" .
  • token (opcional): un token para acceder a un servicio protegido.
  • título (opcional): nombre de una capa operacional. Si se muestra en la leyenda, la leyenda en el diseño debe admitirlo.
  • visibilidad (opcional): el valor predeterminado es verdadero.
  • opacidad (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" : "http://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 "capas" tendrá prioridad sobre "visibleLayers". Los servicios de mapas que no utilizan capas dinámicas solamente son compatibles con la opción "layerDefinition" de la propiedad "capas".
  • capas (opcional): lista de las capas a exportar. En el caso de los servicios de mapas que utilizan capas dinámicas, se exportarán todas las capas especificadas en el conjunto "capas" y se omitirá "visibleLayers". Utilice la propiedad "nombre" para definir el nombre de una capa. Normalmente, esto es necesario cuando el tipo de "origen" de la capa es "dataLayer".
  • drawingInfo (opcional): utilice esta opción para suprimir la configuración de dibujo de la subcapa, como por ejemplo el renderizador de la subcapa.
    • renderizador (opcional): si se especifica esta opción, suprimirá el renderizador original de la subcapa.
  • origen (opcional): representa el origen de una capa que se agrega al servicio de mapas dinámicamente a solicitud. Consulte la API REST 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. Podrá definirla en un nivel de capa operacional para cambiar todas las capas a la versión especificada, o bien definirla como una subcapa en un conjunto "capas" para cambiar la versión de la geodatabase de 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>}
 }
]
"operationalLayers" : [
 {
  "url" : "http://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): permite especificar el renderizador de esta capa.
    • Para representar en pantalla utilizando un renderizador temporales, especifique la latestObservationRenderer, trackLinesRenderer y observationAger propiedades 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): una instrucción SQL que limita las entidades que se dibujarán.
  • objectIds (opcional): restringe las entidades que se dibujarán en función de los Id. de objeto.
  • 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.
  • geometría (opcional): restringe las entidades que dibujará una geometría.
  • geometryType (opcional): esta opción será obligatoria si se especifica una geometría.
  • spatialRel (opcional): la relación espacial que se aplicará a la geometría de entrada mientras se ejecuta la consulta.
  • relationParam (opcional): la 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. Esto es necesario cuando se especifica selectionObjectIds.
  • 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.
  • origen (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" : "http://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 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

  • tipo (obligatorio): para capas WMS debe especificarse como "wms".
  • formato (opcional): el formato de la imagen solicitada desde el servidor.
  • transparentBackground (opcional): si esta opción se configura como verdadero, 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 falso.
  • visibleLayers (opcional): conjunto de nombres de subcapas que deben estar visibles dentro de la capa de servicio de 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.
  • capas (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.
  • estilos (opcional): utilice esta opción para suprimir un estilo de dibujo predeterminado de subcapa. Cuando se especificada, 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, podrá incorporarlo a una cadena de caracteres vacía, por ejemplo, "estilos": ["carreteras","","población"].
  • 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" : "http://myMachine/.../vermont.kmz",
  "title" : "Vermont weather stations",
  "opacity" : 0.75,
  "showLabels" : true,
  "visibleFolders" : [
   0,
   1,
   2
  ]
 }
]

Descripción

  • tipo (obligatorio): para este tipo de capa, el tipo debe ser "kml".
  • url (obligatoria): la dirección URL de 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" : "http://myMachine/anImage.png",
  "imageData" : "iVBORw0KGg....",
 }
]

Descripción

  • tipo (obligatorio): para este tipo de capa, el tipo debe ser "imagen".
  • extensión (obligatoria): el cuadro de límite mínimo al que debe ajustarse la imagen.
  • url (opcional): la 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

  • capas (obligatorio): colección de capas. Una capa tiene dos propiedades: layerDefinition y featureSet.
  • layerDefinition (obligatoria): contiene propiedades que definen una capa: name, geometryType, drawingInfo, objectIdField y fields.
  • nombre (opcional): nombre de la capa.
  • geometryType (obligatorio): para los textos de capas, configure geometryType como 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.
  • campos (opcional): conjunto de campos.
  • featureSet (obligatorio): contenedor de entidades.
  • entidades (obligatorio): colección de entidades.
  • geometría (obligatorio): la geometría que define la entidad o el gráfico.
  • atributos (opcional): conjunto de atributos de entidades.
  • símbolo (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": "http://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": "http://static.arcgis.com/images/Symbols/Basic/RedSphere.png",
      "width": 15
     },
     "type": "simple"
    },
    "transparency": 0
   }
  },
  "locationInfo": {
   "latitudeFieldName": "lat",
   "longitudeFieldName": "lon"
  }
 }
]

Descripción

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

Otras propiedades

Nota:

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

  • origen
  • renderizador
  • símbolo
  • textSymbol
  • labelingInfo
  • Geometría
  • geometryType
  • spatialRel
  • relationParam

Sintaxis para definir drawingInfo para un renderizador temporalesEjemplo
"drawingInfo": {
 "observationAger": {<symbolAger>},
 "latestObservationRenderer": {<renderer>},
 "trackLinesRenderer": {<renderer>},
 "renderer": {<renderer>}
}
"drawingInfo": {
 "observationAger": {
  "alphaRange": [
   0,
   255
  ]
 },
 "latestObservationRenderer": {
  "type": "simple",
  "symbol": {
   "type": "esriPMS",
   "url": "http://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: http://gisserver.domain.com:6080/arcgis/rest/services/GPJobMapServiceName/MapServer/jobs/job_id
    • Resultado de geoprocesamiento de la versión 10.0 y anteriores: http://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" : "http://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 deben 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" : "http://services.arcgisonline.com/ArcGIS/
            rest/services/ESRI_Imagery_World_2D/
            MapServer",
  },
  {
   "url" : "http://services.arcgisonline.com/ArcGIS/
            rest/services/CSP_Imagery_World_2D/
            MapServer",
  }
 ]
}

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 para OpenStreetMap como basemapLayerEjemplo
"baseMap" : {
 "title" : "<title>",
 "baseMapLayers" :  [
  {
   "type" : "OpenStreetMap",
   "url" : "<url>",  //optional
   "credits" : "<credits>"  //optional
  }
 ]
}
"baseMap" : {
 "title" : "OpenCycle Map",
 "baseMapLayers" :  [
  {
   "type" : "OpenStreetMap",
   "url" : "http://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 usan los créditos para el servicio OpenStreetMap predeterminado.

Sintaxis para 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" : "http://{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 dirección URL sigue el patrón http://some.domain.com/{level}/{col}/{row}/ donde "level" corresponde al nivel de zoom, y "col" y "row" son la columna y la fila de la tesela, respectivamente.
  • subDomains (opcional): uno de los subdominios especificados se utilizará para sustituir el marcador de posición {subDomain} en urlTemplate para formar la dirección 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 más información sobre tileInfo, consulte la API REST de 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

  • ppp (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 configura layout_template como MAP_ONLY o como cadena de caracteres vacía, layout_template prevalecerá 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 elementos de diseño de la página incluyen el título, el texto de copyright, la barra de escala, el nombre de autor y los elementos de texto personalizados.

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.

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 ExportWebMapTexto dinámico correspondiente en ArcMap

titleText

<dyn type="document" property="title" />

authorText

<dyn type="document" property="author" />

copyrightText

<dyn type="document" property="credits" />

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>"}
 ],
 "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" : "kilometers",
  "metricLabel" : "km",
  "nonMetricUnit" : "miles",
  "nonMetricLabel" : "mi"
 }
 "customTextElements" : [
  {"townshipName" : "Town ABC"}
 ],
 "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 de 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 no métricas.
    • nonMetricLabel (opcional): cadena de caracteres que indica cómo deben etiquetarse las unidades; por ejemplo, millas o mi. Si no se especifica o se aprueba una cadena de caracteres vacía, se utilizará el valor de texto de la unidad.
  • customTextElements (opcional): es un conjunto de pares de valor y nombre. 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 valores 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.

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.