当您尝试使用随 ArcGIS Server 的安装而提供的 PrintingTools 地理处理服务打印地图时,必须提供地图的“JavaScript 对象标记法”(JSON) 表示,包括地图的图层和范围信息。 必须根据 Esri ExportWebMap 规范构建 JSON。
使用 ArcGIS Web API 时,无需担心构造 JSON 的麻烦;因为 API 会为您解决这个问题。 但是,如果您需要自己构造 JSON,则包括该主题以供参考。 在需要直接调用 PrintingTools 服务或从其他应用程序运行此服务的源地理处理工具“导出 Web 地图”时,就可能发生这种情况。
注:
为了清晰起见和便于阅读,已格式化本主题中 JSON 示例。 但是,实际上,应通过打印服务传递未格式化的 JSON。
Web 地图由五个顶层对象构成:
{
"mapOptions": {},
"operationalLayers": [],
"baseMap": [],
"exportOptions": {},
"layoutOptions": {},
"reportOptions": {}
}
mapOptions
对象 mapOptions 是必要对象,用于定义地图的显示属性。
语法: | 示例 |
---|---|
|
|
描述 | |
|
operationalLayers
operationalLayers 列表包含要在地图上显示的所有业务图层。 数组的顺序定义了地图中图层的顺序。 各图层的类型由 URL 资源响应定义。 如果资源不能由 URL 确定,则由 type 属性来定义类型。 例如,WMS 图层需要您指定 "type": "wms"。 有一些属性是所有类型的业务图层共用的,而其他属性是特定于各类型业务图层的。
如果是受保护的图层,请在图层定义中指定令牌。 不支持在 URL 中包含用户名和密码。
注:
对于地图服务、要素服务或影像服务,需使用指向服务的 REST 端点的 URL。 不支持 SOAP 端点。
业务图层的语法 |
---|
|
描述 |
注:下述属性对于各种业务图层(例如,地图服务图层、客户端图形和 KML 图层等)是通用的。 因此,本部分并不会针对以下各种业务图层介绍这些属性。
|
地图服务图层的语法 | 示例 |
---|---|
|
|
描述 | |
|
要素图层的语法 | 示例 |
---|---|
|
|
描述 | |
|
影像服务图层的语法 | 示例 |
---|---|
|
|
描述 | |
注:有关影像服务图层的详细信息,请参阅 ArcGIS REST API。 |
WMS 服务图层的语法 | |
---|---|
| |
描述 | |
|
KML 图层的语法 | 示例 |
---|---|
|
|
描述 | |
|
客户端图像的语法 | 示例 |
---|---|
|
|
描述 | |
|
客户端图形的语法 | 示例 | |
---|---|---|
|
| |
描述 | ||
|
通过 URL 的逗号分隔值 (CSV) 文件的语法 | 示例 | |
---|---|---|
|
| |
描述 | ||
|
其他属性
注:
有关下列属性的详细信息,请参阅 ArcGIS REST API。
- source
- renderer
- symbol
- textSymbol
- labelingInfo
- geometry
- geometryType
- spatialRel
- relationParam
定义时态渲染器的 drawingInfo 的语法 | 示例 |
---|---|
注:从 ArcGIS Pro 发布的打印服务不支持时态渲染器。
|
|
定义 symbolAger 的语法 | |
| |
定义 agerClassBreakInfo 的语法 | |
| |
描述 | |
|
地理处理结果
可通过两种方式来包括地理处理结果:
- 如果地理处理结果作为要素集返回并在客户端上以图形方式进行绘制,则以要素集合形式发送此结果。
- 如果通过作业的结果地图服务绘制结果,则在 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 的语法 | 示例 |
---|---|
|
|
作为 baseMapLayer 的矢量切片图层的语法 | 示例 |
---|---|
注:矢量切片图层仅受 ArcGIS Pro 发布的打印服务支持。
|
|
作为 basemapLayer 的 Bing 地图的语法 | 示例 |
---|---|
|
|
作为 basemapLayer 的 OpenStreetMap 的语法 | 示例 |
---|---|
|
|
描述 | |
|
作为 basemapLayer 的 WebTiledLayer 的语法 | 示例 |
---|---|
|
|
描述 | |
|
作为 basemapLayer 的 WMTS 的语法 |
---|
|
exportOptions
此对象用于指定输出地图的设置。
语法 | 示例 |
---|---|
|
|
描述 | |
|
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=""/> |
注:
有关详细信息,请参阅 ArcGIS 帮助中的 dynamicText。
语法 | 示例 |
---|---|
|
|
描述 | |
|
reportOptions
这可为各种可用的报告元素定义设置,并且仅当选择了可用报告模板时才需指定此项。 报表元素包括源和相关源 ID、字段列表等。
注:
此选项仅替换现有元素的属性。 如果某个元素在所选报告模板中不存在,则忽略相关属性。 例如,如果报告模板没有相关报告,则输出报告将不会有任何相关记录。
该对象的所有属性都是必需的。
向获取报告模板信息任务发送请求以检索每个报告模板可用的元素。
语法 | 示例 |
---|---|
|
|
描述 | |
| |
局限性
渲染器类型为分类间隔或简单渲染器时,不支持注释图层中覆盖的要素级符号。