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

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

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

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

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

mapOptions

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

Синтаксис:

Пример:

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

Описание

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

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

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

operationalLayers

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

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

ПримечаниеПримечание:

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

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

"operationalLayers" : [
 {
  "id" : "<webmapOperationalLayerId>",
  "url" : "<url1>",
  "token" : "<tokenString1>",
  "title" : "<title1>",
  "opacity" : <opacity1>,
  "visibility" : <true | false>,
  "minScale" : <minScale1>,
  "maxScale" : <maxScale1>
 }
]

Описание

  • id (необязательно): Строка, уникально идентифицирующая рабочий слой. Это необходимо чаще всего для печати легенд.
  • 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>,
    "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
  ]
 }
]

Описание

  • visibleLayers (необязательно): Массив идентификаторов подслоев, которые должны быть видны в слое картографического сервиса. Если эти значения не указаны, рабочий слой будет по умолчанию отрисован с текущими настройками видимости каждого подслоя. Указывать идентификатор составного слоя необязательно. Обратите внимание, что если картографический сервис поддерживает динамические слои, то "layers" имеют преимущество перед "visibleLayers". Для картографических сервисов, которые не используют dynamicLayers, в свойстве "layers" поддерживается только "layerDefinition".
  • layers (дополнительно): список слоев для экспорта. Для картографических сервисов, которые используют динамические слои, все эти слои указаны в экспортируемом массиве "layers", а массив "visibleLayers" игнорируется.
  • drawingInfo (дополнительно): используется для замещения настроек отрисовки отображения подслоя (например, способа отображения слоя).
    • renderer (необязательно): При использовании замещает исходный способ отображения подслоя.
  • source (необязательно): Представляет источник слоя, который добавляется к картографическому сервису динамически по запросу. См. справку ArcGIS for Server REST API (доступна по ссылке из приложения Services Directory) для получения дополнительной информации о способах задания источника.
  • 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>}
 }
]
"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>}
 }
]

Описание

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

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

Пример:

"operationalLayers" : [
 {
  "url" : "<url1>",
  "title" : "<title1>",
  "opacity" : <opacity2>,
  "noData" : <noDataValue>,
  "format" : "<jpgpng | png | png8 | png24 | jpg | 
              bmp | gif | tiff >",
  "interpolation" : "<RSP_BilinearInterpolation | 
                     RSP_CubicConvolution | 
                     RSP_Majority | 
                     RSP_NearestNeighbor>",
  "compressionQuality" : <compress>,
  "bandIds" : [
   <bandId1>,
   <bandId2>
  ],
  "mosaicRule" : "<mosaicRule>",
  "renderingRule" : "<renderingRule>"
 }
]
"operationalLayers" : [
 {
  "url" : "http://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-сервисом.

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

Пример:

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

Описание

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

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

"operationalLayers" : [
 {
  "featureCollection": {
   "layers": [
    {
     "layerDefinition": {
      "name": "<layerName>",
      "geometryType": "<esriGeometryType>",
      "drawingInfo": {<drawingInfo>},
      "timeInfo" : {  //optional
       "startTimeField" : "<fieldName>",
       "endTimeField" : "<fieldName>",
       "trackIdField" : "<trackIdFieldName>"
      },
      "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
       }
      ]
     }
    }
   ]
  }
 }
]

Описание

  • layers (обязательно): коллекция слоев. Слой содержит два свойства – layerDefinition и featureSet.
  • layerDefinition (обязательно): содержит свойства, определяющие слой (name, geometryType, drawingInfo, objectIdField, и fields).
  • name (необязательно): имя слоя.
  • geometryType (обязательно): для текстовых слоев параметру geometryType должно быть присвоено значение esriGeometryPoint.
  • drawingInfo (необязательно): если параметр drawingInfo не задан, графика обозначается с помощью символов.
  • timeInfo (дополнительно):
    • startTimeField: Имя поля, которое содержит начальное время для будущего. Тип поля должен быть datetime (дата-время) и значение должно быть в UTC.
    • endTimeField (дополнительно): Имя поля, которое содержит конечное время для будущего. Тип поля должен быть datetime (дата-время) и значение должно быть в UTC. Если данные только один раз ассоциированы с этим (это мгновенно), то не устанавливайте данное свойство.
    • trackIdField (дополнительно): Поле, которое однозначно представляет данный объект или наблюдаемые объекты. Если это поле пустое или отсутствует, то с помощью latestObservationRenderer отображается только последнее наблюдение.
  • objectIdField (дополнительно): Имя поля, которое содержит идентификаторы объектов IDs.
  • 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": "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"
  }
 }
]

Описание

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

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

ПримечаниеПримечание:

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

  • источник
  • renderer (метод отображения)
  • symbol (символ)
  • textSymbol
  • labelingInfo
  • geometry (геометрия)
  • geometryType
  • spatialRel
  • relationParam

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

Пример:

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

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

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

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

Описание

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

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

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

  1. Когда результатом геообработки является набор объектов, и он отрисовывается как графика на стороне клиента, отправьте результат в виде группы объектов (FeatureCollection).
  2. Когда результат отрисовывается с помощью картографического сервиса задания, создайте новый слой картографического сервиса в operationalLayers и укажите свойство url, чтобы определить конечную точку результата. Например:
    • Результат геообработки с сервера версии 10.1: http://{myMachine:6080}/arcgis/rest/services/{GPJobMapServiceName}/MapServer/jobs/{job_id}
    • Результат геообработки с сервера версии до 10.1: http://{myMachine}/arcgis/rest/services/{GPServiceName}/GPServer/{GPTaskName}/jobs/{job_id}/results/{out_param_name}

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

"operationalLayers" : [
 {
  "url" : "http://myMachine/arcgis/rest/services/Buffer/MapServer/jobs/j9aa6c36d59f44829a0daeadb2d0ff87b",
  "title" : "Geoprocessing Result"
 }
]

baseMap

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

Синтаксис для baseMap

Пример:

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

Синтаксис для использования 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" : "http://a.tile.opencyclemap.org/cycle"
  }
 ]
}

Описание

  • url (дополнительно): если не задано, то openstreetmap.org используется по умолчанию.
  • credits (дополнительно): Кредиты для слоя. Это не имеет эффекта если url не задан.

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

layoutOptions

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

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

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

Текстовый элемент ExportWebMap

Соответствующий динамический текст в ArcMap

titleText

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

authorText

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

copyrightText

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

ПримечаниеПримечание:

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

Синтаксис

Пример:

"layoutOptions" : {
 "titleText" : "<title>",
 "authorText" : "<authorName>",
 "copyrightText" : "<copyright>",
 "scaleBarOptions" :  {
  "metricUnit" : "<meters | kilometers>" ,
  "metricLabel" : "<metricUnitLabel>",
  "nonMetricUnit" : "<feet | yards | miles | 
                    nauticalMiles>" ,
  "nonMetricLabel" : "<nonMetricUnitLabel>"
 },
 "customTextElements" : [
  {"<textElementName1>" : "<value1>"},
  {"<textElementName2>" : "<value2>"}
 ],
 "legendOptions" : {
  "operationalLayers" : [
   {
    "id" : "<webmapOperationalLayerId>",
    "sublayerIds" : [  //array of strin 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"
   }
  ]
 }
}

Описание

  • titleText (необязательно): Текст текстового элемента названия карты обновляется, если он существует в компоновке.
  • authorText (необязательно): Текст элемента текста автора обновляется, если он существует в компоновке.
  • copyrightText (необязательно): Текст элемента авторского текста обновляется, если он существует в компоновке.
  • scaleBarOptions (необязательно): Обновляют масштабную линейку, если она существует.
    • metricUnit (необязательно): Устанавливает метрические единицы масштабной линейки.
    • metricLabel (необязательно): Строка, указывающая, как должны быть обозначены единицы (например, КМ, Kilometers или kms). Когда это не указано или передается пустая строка, используется текстовое значение единиц измерения.
    • nonMetricUnit (необязательно): Устанавливает неметрические единицы масштабной линейки.
    • nonMetricLabel (необязательно): Строка, указывающая, как должны быть обозначены единицы (например, Miles или mi). Когда это не указано, или передается пустая строка, используется текстовое значение единиц измерения.
  • customTextElements (необязательно): Это массив пар имя-значение. Его необходимо использовать, если вы хотите изменить текст текстового элемента (т. е. не динамический текст) в компоновке страницы. Значения должны быть строковыми.
  • legendOptions (необязательно): Определяет свойства элемента легенды в компоновке.
    • operationalLayers (необязательно): Определяет рабочие слои, легенды которых будут добавлены в компоновку.
      • id: Строка, представляющая идентификатор слоя. Идентификатор должен быть уникальным и соответствовать идентификатору слоя в элементе operationalLayers, где определен рабочий слой.
      • subLayerIds (необязательно): Массив подслоев, чьи типы элементов являются строками или длинными целыми числами и предоставляют контекст рабочему слою. Например, для слоя картографического сервиса он должен быть числом, для слоя WMS – строкой. Рекомендуется указать значения subLayerIds для рабочих слоев, имеющих подслои. Если они будут пропущены, то в случае картографического сервиса и слоев WMS, легенды из всех подслоев добавляются к элементу легенды в компоновке. Для слоев объектов или графики свойство подслоев устанавливать не нужно.

Ограничения

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

9/12/2013