Skip To Content

Спецификация ExportWebMap

При попытке распечатать карту с помощью сервиса геообработки PrintingTools, входящего в состав ArcGIS Server, вы должны определить представление карты в формате JavaScript Object Notation (JSON), в том числе информацию о слое и экстенте. JSON необходимо структурировать в соответствии со спецификацией Esri ExportWebMap.

При использовании ArcGIS REST API вам не нужно беспокоиться по поводу создания JSON – API сделают это за вас. Тем не менее, эта тема включена для справки на случай, если вам когда-нибудь понадобится создать представление JSON самостоятельно. Это может произойти, если вам нужно вызвать сервис PrintingTools напрямую или запустить его исходный инструмент геообработки Экспорт веб-карты из другого приложения.

Примечание:

Для большего удобства и понятности примеры JSON в данном разделе отформатированы. Однако на практике вам следует вставлять в сервисы печати не отформатированные выражения JSON.

Веб-карта состоит из пяти объектов верхнего уровня:


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

mapOptions

Объект mapOptions является обязательным и определяет свойства отображения карты.

Синтаксис:Пример

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

Описание

  • extent (обязательный): Обязательное свойство, определяющее экстент карты. Пространственная привязка объекта экстента не является обязательной. Когда она не предусмотрена, предполагается, что она находится в пространственной привязке карты. Когда размер изображения экстента карты отличается от размера карты на странице вывода или exportOptions:outputSize, можно заметить, что на полученной выходной карте имеется больше объектов.
  • scale (дополнительно): масштаб карты, в котором вы хотите экспортировать карту. Это свойство является необязательным, но рекомендуется его использовать для получения оптимальных результатов. Свойство масштаба особенно полезно, когда в картографических сервисах данной веб-карты имеются масштабно-зависимые слои или был установлен базовый масштаб. Так как карта, которую вы просматриваете в веб-приложении, может быть меньше, чем размер выходной карты (например, 8,5 х 11 дюймов или А4), масштаб выходной карты будет отличаться. Вы можете увидеть различия в объектах и/или символах в веб-приложении по сравнению с выходной картой.

    При использовании масштаба он имеет приоритет над экстентом, но выходная карта рисуется в запрошенном масштабе с выравниванием по центру экстента.

  • rotation (дополнительно): представляет собой значение в градусах, измеренное против часовой стрелки от направления на север, на которое будет повернут фрейм данных. Для вращения по часовой стрелке используйте отрицательное значение.
  • spatialReference (дополнительно): пространственная привязка карты. Порядок предпочтения, когда spatialReference отсутствует, выглядит следующим образом:
    1. mapOptions.extent.spatialReference
    2. baseMap.baseMapLayers.spatialReference
    3. Пространственная привязка шаблона карты
  • time (дополнительно): если есть слой с учетом времени, и вы хотите, чтобы он отображался в указанное время, укажите это свойство. Этот порядковый список может содержать один или два элемента. Добавьте два элемента (startTime, а затем endTime), чтобы описать временной экстент, или предоставьте только один временной элемент, чтобы описать момент времени. Значения времени всегда указываются в формате UTC.
  • background (дополнительно): вы можете изменить фоновый цвет карты. Если в компоновке несколько карт, это применяется к карте, связанной с фреймом карты с именем WEBMAP_MAP_FRAME.

operationalLayers

Список operationalLayers содержит все рабочие слои, которые будут отображаться на карте. Порядок в массиве определяет порядок слоев на карте. Тип каждого слоя определяется по типу ответа ресурса URL. Если ресурс нельзя определить по строке URL, свойство type определяет тип. Например, слой WMS требует, чтобы вы указали "type": "wms". Есть некоторые свойства, общие для всех типов рабочих слоев, в то время как другие являются специфическими для каждого типа рабочего слоя.

При наличии защищенных слоев задайте маркер токен в определении слоя. Имя пользователя и пароль не могут использоваться в качестве части строки URL.

Примечание:

Для картографического сервиса, сервиса объектов или сервиса изображений используйте URL, указывающий на конечную точку доступа REST сервиса. Конечные точки SOAP не поддерживаются.

Синтаксис для рабочих слоев

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

Описание

Примечание:

Описываемые ниже свойства являются общими для всех типов рабочих слоев (например: слоя картографического сервиса, построения изображения на стороне клиента, слоя kml и т.д.). Поэтому они могут быть не включены в раздел для каждого типа перечисленных ниже рабочих слоев.

  • id (необязательно): Строка, уникально идентифицирующая рабочий слой. Это необходимо чаще всего для печати легенд.
  • layerType: слой рабочего типа. Может быть задан как ArcGISFeatureLayer, ArcGISImageServiceLayer, ArcGISMapServiceLayer, ArcGISTiledImageServiceLayer, ArcGISTiledMapServiceLayer, VectorTileLayer, WebTiledLayer, WMS или KML.
  • url: конечная точка доступа сервиса. Это не требуется для "featureCollection".
  • token (дополнительно): токен для доступа к защищенному сервису.
  • title (необязательно): Имя рабочего слоя. Если он появляется в легенде, то легенда в компоновке должна это поддерживать.
  • visibility (дополнительно): значение по умолчанию равно true.
  • opacity (необязательно): Диапазон значений от 0 до 1 (по умолчанию), где 1 означает полную непрозрачность, а 0 – полную прозрачность.
  • minScale (необязательно): Слой не отрисовывается при уменьшении изображения карты за пределы такого масштаба.
  • maxScale (необязательно): Слой не отрисовывается при увеличении изображения карты за пределы такого масштаба.

Синтаксис для слоя картографического сервисаПример

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

Описание

  • visibleLayers (необязательно): Массив идентификаторов подслоев, которые должны быть видны в слое картографического сервиса. Если эти значения не указаны, рабочий слой будет по умолчанию отрисован с текущими настройками видимости каждого подслоя. Указывать идентификатор составного слоя необязательно. Обратите внимание, что если картографический сервис поддерживает динамические слои, то layers имеют преимущество перед visibleLayers. Картографические сервисы, которые не используют dynamicLayers, поддерживается только layerDefinition в свойстве layers.
  • layers (дополнительно): список слоев для экспорта. Для картографических сервисов, которые используют динамические слои, все эти слои указаны в экспортируемом массиве layers, а массив visibleLayers игнорируется. Используйте свойство name для задания имени слоя. Это требуется обычно если тип source слоя – dataLayer.
  • drawingInfo (дополнительно): используется для замещения настроек отрисовки отображения подслоя (например, способа отображения слоя).
    • renderer (необязательно): При использовании замещает исходный способ отображения подслоя.
  • source (дополнительно): представляет источник слоя, который динамически добавляется в картографический сервис по запросу. Дополнительные сведения об определении источника см. в ArcGIS REST API.
  • gdbVersion (дополнительно): укажите, если вы хотите видеть объекты, отрисованные из другой версии базы геоданных. Можно задать этот параметр на уровне рабочего слоя, чтобы перевести все слои в указанную версию; или определить как подслой в массиве layers, чтобы изменить версию базы геоданных для всех отдельных слоев.

Синтаксис для слоя объектовПример

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

Описание

  • url (обязательно): URL-адрес слоя. Данное свойство должно заканчиваться на /dynamicLayer, если слой объекта основан на слое из картографического сервиса с поддержкой динамических слоев.
  • drawingInfo (необязательно): Определяет способ отображения этого слоя.
    • Для отображения с помощью временной визуализации необходимо задать свойства latestObservationRenderer, trackLinesRenderer и observationAger отдельно от визуализации.
    • observationAger (необязательно): временная визуализация поддерживает два типа observationAger: rampAger и classBreaksAger. Для любого запроса слой может содержать rampAger или classBreaksAger, но не оба.
  • definitionExpression (необязательно): SQL-выражение, ограничивающее, какие объекты будут отображены.
  • objectIds (необязательно): На основе идентификаторов объекта ограничивает, какие объекты будут отображены.
  • timeInfo (дополнительно):
    • trackIdField: поле, уникально представляющее данный объект или наблюдаемые объекты. Если это поле пустое или отсутствует, то отрисовывается только последнее наблюдение с использованием latestObservationRenderer.
  • geometry (необязательно): Ограничивает отрисовку объектов по геометрии.
  • geometryType (необязательно): Этот параметр необходим, когда указана геометрия.
  • spatialRel (дополнительно): пространственное отношение, которое применяется к входной геометрии при выполнении запроса.
  • relationParam (необязательно): Функция пространственного отношения, которая должна применяться при выполнении запроса. Примером такой функции пространственного отношения является FFFTTT***.
  • selectionObjectIds (необязательно): Выделяет объекты с идентификаторами данного объекта с помощью указанного символа; необходимо установить атрибут selectionSymbol.
  • selectionSymbol (необязательно): Объекты выделяются данным символом. Требуется, если указан selectionObjectIds.
  • charts (дополнительно): операционный уровень не может иметь диаграмм, либо возможны одна или несколько диаграмм. См. характеристики веб-карты для элемента диаграммы.
  • gdbVersion (обязательно): указывается имя версии базы геоданных, если используется версия, отличная от той, на которую ссылается картографический сервис или сервис объектов.
  • source (необязательно): требуется только в том случае, когда слой объекта основан на картографическом сервисе с поддержкой динамических слоев.

Синтаксис для слоя сервиса изображенийПример

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

Описание

Примечание:

См. справку ArcGIS REST API для получения дополнительной информации о слоях сервиса изображений.

Синтаксис для слоя 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>"
    ]
  }
]

Описание

  • type (обязательно): для слоев WMS должно быть указано как wms.
  • format (необязательно): Формат запрашиваемого с сервера изображения.
  • transparentBackground (необязательно): Когда указано значение true, фон становится прозрачным при условии, что формат запрашиваемого изображения поддерживает прозрачный цвет. (JPEG является примером формата изображения, не поддерживающего прозрачный цвет). Значение по умолчанию - false.
  • visibleLayers (необязательно): Массив имен подслоев, которые должны быть видны в слое сервиса WMS. Порядок тоже важен – он должен соответствовать требованиям WMS-сервиса. Если этот параметр не задан, все слои в WMS сервисе будут видимыми.
  • layers (необязательно): Массив имен подслоев для добавления на карту. Если этот параметр не задан, все слои в WMS сервисе будут добавлены на карту.
  • styles (необязательно): Используется для замещения стиля отрисовки подслоя по умолчанию. Если он указан, убедитесь, что число и порядок стилей соответствуют массиву visibleLayers. Когда нежелательно менять стиль для одного определенного подслоя, вы можете передать пустую строку, например, "styles": ["highways","","population"].
  • version (необязательно): версия WMS, к которой вы хотите подключиться. По умолчанию используется последняя версия, поддерживаемая данным WMS-сервисом.

Синтаксис для слоя KMLПример

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

Описание

  • type (обязательно): для этого типа слоя необходимо указать тип kml.
  • url (обязательно): URL файла kmz.
  • showLabels (необязательно): по умолчанию равно false.
  • visibleFolders: массив числовых ID папок, которые будут сделаны видимыми.

Синтаксис для изображений на стороне клиентаПример

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

Описание

  • type (обязательно): для этого типа слоя необходимо указать type как image.
  • extent (обязательно): минимальный ограничивающий прямоугольник, в который помещается изображение.
  • url (необязательно): URL изображения, которое нужно отрисовать. Требуется только в случае, если не передается imageData.
  • imageData (необязательно): Изображение, закодированное в формате base64. Требуется в случае, если не передается свойство url.

Синтаксис для графики на клиентской сторонеПример

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

Описание

  • layers (обязательно): коллекция слоев. У слоя есть два свойства: layerDefinition и featureSet.
  • layerDefinition (обязательно): содержит свойства, которые определяют слой: name, geometryType, drawingInfo, objectIdField и fields.
  • name (необязательно): имя слоя.
  • geometryType (обязательно): для текстового слоя необходимо указать geometryType как esriGeometryPoint.
  • drawingInfo (необязательно): если параметр drawingInfo не задан, графика обозначается с помощью символов.
  • objectIdField (необязательно): имя поля, содержащего ID объектов.
  • fields (необязательно): коллекция полей.
  • featureSet (обязательно): контейнер объектов.
  • features (обязательно): коллекция объектов.
  • geometry (обязательно): геометрия, определяющая объект или графику.
  • attributes (дополнительно): коллекция атрибутов объектов.
  • symbol (необязательно): если этот параметр задан, символ переопределяет символ, определенный в визуализации.

Синтаксис для файлов с разделением значений запятыми (CSV) по URL-адресуПример

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

Описание

  • latitudeFieldName (обязательно): имя поля, содержащего координату Y.
  • longitudeFieldName (обязательно): имя поля, содержащего координату Y.

Прочие свойства

Примечание:

См. справку ArcGIS REST API для получения дополнительной информации о следующих свойствах.

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

Синтаксис для определения drawingInfo для временной визуализацииПример
Примечание:

Временная отрисовка не поддерживается Сервисами печати, опубликованными из 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
      }
    }
  }
}

Синтаксис для определения 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>},...]
}

Синтаксис для определения agerClassBreakInfo


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

Описание

  • Временная визуализация поддерживается только слоями объектов, а не графическими слоями со стороны клиента или слоями динамического картографического сервиса.
  • Alpha представляет собой целочисленное значение в диапазоне от 0 до 255.

Результат геообработки

Результат геообработки может быть включен двумя способами.

  1. Когда результатом геообработки является набор объектов, и он отрисовывается как графика на стороне клиента, отправьте результат в виде группы объектов.
  2. Когда результат отрисовывается с помощью картографического сервиса задания, создайте новый слой картографического сервиса в operationalLayers и укажите свойство URL, чтобы определить конечную точку результата. Например:
    • Результат геообработки из 10.1 или более поздней версии: https://gisserver.domain.com:6080/arcgis/rest/services/GPJobMapServiceName/MapServer/jobs/job_id
    • Результат геообработки из 10.0 и предыдущих версий: https://gisserver.domain.com/arcgis/rest/services/GPServiceName/GPServer/GPTaskName/jobs/job_id/results/out_param_name

Пример: результат геообработки в качестве рабочего слоя, который отрисовывается с помощью картографического сервиса задания


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

baseMap

Карта содержит один объект baseMap, имеющий название, и свойство baseMapLayers, содержащее упорядоченный список baseMapLayers. Каждый объект baseMapLayer должен иметь одинаковую пространственную привязку и схему листов. Когда есть объект baseMap, он определяет пространственную привязку карты.

Синтаксис для baseMapПример

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

Синтаксис для функции Слой векторных листов как baseMapLayerПример
Примечание:

Слои векторных листов поддерживаются только Сервисами печати при публикации из 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
    }
  ]
}

Синтаксис для использования Bing Maps в качестве объекта basemapLayerПример

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

Синтаксис для OpenStreetMap как basemapLayerПример

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

Описание

  • url (дополнительно): если не указан, по умолчанию используется openstreetmap.org.
  • credits (дополнительно): указание состава исполнителей слоя. Значение этого свойства игнорируется если не указан параметр url. Вместо этого используются данные сервиса по умолчанию OpenStreetMap.

Синтаксис для WebTiledLayer как basemapLayerПример

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

Описание

  • urlTemplate (обязательно): шаблон URL для получения листов. Шаблон URL следует после паттерна https://some.domain.com/{level}/{col}/{row}/, где level соответствует масштабному уровню, а col и row представляют соответственно столбец и строку листов.
  • subDomains (дополнительно): будет использован один из заданных субдоменов subDomains для замены символа-заполнителя {subDomain} в urlTemplate при построении URL для запроса листа.
  • tileInfo (дополнительно): определяет информацию о листе для слоя, в том числе lods, строки, столбцы, начало отсчета и пространственную привязку. Если tileInfo не указано, слой считается находящимся в web Mercator со схемой размещения листов web Mercator. Дополнительные сведения о tileInfo см. в разделе ArcGIS REST API.
  • credits (дополнительно): указание состава исполнителей слоя.

Синтаксис для WMTS в качестве объекта basemapLayer

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

exportOptions

Этот объект определяет параметры выходной карты.

СинтаксисПример

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

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

Описание

  • dpi (необязательно): Разрешение в точках на дюйм. По умолчанию используется 96 dpi.
  • outputSize (необязательно): Размер карты в пикселях. Размер должен быть определен, когда пустая строка или MAP_ONLY (без кавычек) передается в качестве значения параметра layout_template. Если layout_template не определен в качестве MAP_ONLY или пустой строки, layout_template имеет приоритет над outputSize.

layoutOptions

Определяет настройки для различных доступных элементов компоновки страницы и требуется только в случае, когда выбран доступный шаблон компоновки. Элементы компоновки страницы включают название, авторские тексты, масштабную линейку, имя автора, пользовательские и динамические текстовые элементы, элементы фрейма диаграммы и элементы фрейма таблицы.

Примечание:

Эта опция заменяет свойства только существующих элементов. Если элемент не существует в выбранном шаблоне компоновки, связанные с ним свойства не будут использованы. Например, если в шаблоне компоновки нет элемента авторских прав, в компоновку не будет добавлен новый элемент текста авторских прав, даже если в layoutOptions указан элемент copyrightText.

Диаграммы должны быть полностью определены в рабочих слоях, прежде чем использовать их в качестве источников для элементов фрейма диаграммы.

Все свойства этого объекта являются необязательными. Когда значение свойства не указано, значение соответствующего элемента компоновки страницы будет заменено. В противном случае, существующий элемент останется неизменным.

Пользовательский текстовый элемент ExportWebMapСоответствующий динамический текст в 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=""/>
Примечание:

Более подробно об объекте dynamicText см. в Справке ArcGIS.

СинтаксисПример

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

Описание

  • titleText (необязательно): Текст текстового элемента названия карты обновляется, если он существует в компоновке.
  • authorText (необязательно): Текст текстового элемента автора текста обновляется, если он существует в компоновке.
  • copyrightText (необязательно): Текст текстового элемента копирайта обновляется, если он существует в компоновке.
  • scaleBarOptions (необязательно): Обновляют масштабную линейку, если она существует.
    • metricUnit (необязательно): Устанавливает метрические единицы масштабной линейки.
    • metricLabel (необязательно): Строка, указывающая, как должны быть обозначены единицы (например, КМ, Kilometers или kms). Когда это не указано или передается пустая строка, используется текстовое значение единиц измерения.
    • nonMetricUnit (необязательно): Устанавливает неметрические единицы масштабной линейки.
    • nonMetricLabel (необязательно): строка, указывающая, как следует подписывать единицы, например, Километры или км. Когда это не указано или передается пустая строка, используется текстовое значение единиц измерения.
  • customTextElements (необязательно): массив пар имя-значение. Его необходимо использовать, если вы хотите изменить текст текстового элемента (т. е. не динамический текст) в компоновке страницы. Значения должны быть строковыми.
  • legendOptions (необязательно): Определяет свойства элемента легенды в компоновке. Помните, что если элемент легенды в компоновке оказывается пустым (не содержит слоя), при печати он удаляется.
    • operationalLayers (необязательно): Определяет рабочие слои, легенды которых будут добавлены в компоновку.
      • id: Строка, представляющая идентификатор слоя. Идентификатор должен быть уникальным и соответствовать идентификатору слоя в элементе operationalLayers, где определен рабочий слой.
      • subLayerIds (необязательно): Массив подслоев, чьи типы элементов являются строками или длинными целыми числами и предоставляют контекст рабочему слою. Например, для слоя картографического сервиса он должен быть числом, для слоя WMS – строкой. Рекомендуется указать значения subLayerIds для рабочих слоев, имеющих подслои. Если они будут пропущены, то в случае картографического сервиса и слоев WMS, легенды из всех подслоев добавляются к элементу легенды в компоновке. Для слоев объектов или графики свойство подслоев устанавливать не нужно.
  • elementOverrides (дополнительно): это элемент, содержащий свойства перезаписи некоторых элементов, таких как стрелка севера, текстовый элемент, содержащий элементы динамического текста, фрейм таблицы или элемент фрейма диаграммы в компоновке страницы. Вы можете использовать GetLayoutTemplatesInfo, чтобы узнать, есть ли в шаблоне компоновки такие элементы и их определения.
    • visible (дополнительно): укажите видимость элемента. Это применимо ко всем типам элементов.
    • sourceLayerId: обязательно для элементов таблицы и диаграммы.
    • sourceChartId: обязательно и применимо только для элементов диаграммы. sourceChartId можно найти внутри определения operationalLayer.
    • filterType (дополнительно): перезаписать тип фильтра. Применимо для динамических текстовых элементов, табличных элементов и элементов диаграмм.
    • whereClause (дополнительно): укажите фильтр для атрибутов в соответствии со стандартом SQL. Когда filterType="Selected", они оба получают AND. Этот параметр игнорируется, если это элемент диаграммы.
    • fields (дополнительно): укажите массив полей, который используется в элементе таблицы. Неприменимо к элементу диаграммы. Порядок учитывается.
    • dynamicTextElements: массив динамических текстовых элементов с перезаписанными свойствами. Применимо только для текстовых элементов, содержащих динамические текстовые элементы.
      • sourceLayerId (обязательно): строка, представляющая идентификатор слоя. Идентификатор должен быть уникальным и соответствовать идентификатору слоя в элементе operationalLayers, где определен рабочий слой.
      • filterType (дополнительно): перезаписать тип фильтра.
      • whereClause (дополнительно): укажите фильтр для атрибутов в соответствии со стандартом SQL. Когда filterType="Selected", они оба получают AND.
      • field (дополнительно): укажите имя поля, из которого будут извлекаться или генерироваться динамические атрибуты или некоторая статистика.

reportOptions

Определяет настройки для различных доступных элементов отчета и требуется только в случае, когда выбран доступный шаблон отчета. Элементы отчета включают идентификаторы источника и связанных источников, список полей и т.д.

Примечание:

Эта опция заменяет свойства только существующих элементов. Если элемент не существует в выбранном шаблоне отчета, связанные с ним свойства не будут использованы. Например, если шаблон отчета не имеет связанного отчета, выходные отчеты не будут иметь связанных записей.

Все свойства этого объекта являются обязательными.

Отправьте запрос на задачу Получить информацию шаблонов отчетов, чтобы получить элементы, доступные для каждого шаблона отчета.

СинтаксисПример

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

Описание

  • reportSectionOverrides: это единственный элемент, который имеет элемент reportOptions. Содержит определения некоторых разделов, например, Report Section, Related Report и т.д., доступные в компоновке отчета.
  • Каждый из этих дочерних элементов содержит свойства переопределения некоторых элементов, таких как источники, сопоставление полей и т.д. в каждом разделе.
  • Вы можете использовать Получить информацию шаблонов отчетов для поиска всех элементов в шаблоне отчета, которые могут быть перезаписаны.
  • Прочтите об Отчетах в Справке ArcGIS Pro для получения более подробной информации об отчетах и их компонентах.

Ограничения

Символы на уровне объекта, замещенные в слоях примечаний, не поддерживаются, если для отображения используются такие методы, как границы классов или простое отображение.