Skip To Content

ExportWebMap 规范

当您尝试使用随 ArcGIS Server 的安装而提供的 PrintingTools 地理处理服务打印地图时,必须提供地图的“JavaScript 对象标记法”(JSON) 表示,包括地图的图层和范围信息。 必须根据 Esri ExportWebMap 规范构建 JSON。

使用 ArcGIS Web API 时,无需担心构造 JSON 的麻烦;因为 API 会为您解决这个问题。 但是,如果您需要自己构造 JSON,则包括该主题以供参考。 在需要直接调用 PrintingTools 服务或从其他应用程序运行此服务的源地理处理工具“导出 Web 地图”时,就可能发生这种情况。

注:

为了清晰起见和便于阅读,已格式化本主题中 JSON 示例。 但是,实际上,应通过打印服务传递未格式化的 JSON。

10.9 中的新特性

  • mapOptions 添加了新元素以更改地图的背景颜色。

10.8.1 版本的新特性

  • ArcGIS Pro 发布的打印服务现已支持以下两个渲染器。
    • 点密度
    • 双变量

Web 地图由五个顶层对象构成:


{
  "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>
  ],
  "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(必选):必要属性,用于定义地图的范围。 extent 对象的空间参考是可选的;如果未提供此项,则假定使用的是地图的空间参考。 当地图范围的横纵比与输出页面上或 exportOptions:outputSize 的地图大小不同时,您可能会发现地图输出中将包含更多要素。
  • scale(可选):导出地图时所使用的地图比例。 此属性为可选项,但建议使用以便获得最佳结果。 当此 Web 地图中的地图服务具有与比例相关的图层或参考比例设置时,此 scale 属性特别有用。 由于在 Web 应用程序上查看的地图可能比输出地图的尺寸小(例如,8.5 x 11 英寸或 A4 尺寸),所以输出地图的比例将会不同,您会看到 Web 应用程序中的要素和/或符号与输出地图相比存在差异。

    使用 scale 时,它的优先级会高于 extent,但输出地图会以请求的比例在范围的中心进行绘制。

  • 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 中包含用户名和密码。

注:

对于地图服务、要素服务或影像服务,需使用指向服务的 REST 端点的 URL。 不支持 SOAP 端点。

业务图层的语法

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

说明

注:

下述属性对于各种业务图层(例如,地图服务图层、客户端图形和 KML 图层等)是通用的。 因此,本部分并不会针对以下各种业务图层介绍这些属性。

  • 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>,
        "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(可选):应在地图服务图层内可见的子图层 ID 的数组。 如果忽略此项,则业务图层将使用各子图层的默认可见状态进行绘制。 您无需指定图层组的 Id。 请注意,如果地图服务支持动态图层,则 layers 优先于 visibleLayers。 对于不使用 dynamicLayers 的地图服务,仅支持 layers 属性中的 layerDefinition
  • 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>}
  }
]

"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(可选):指定此图层的渲染器。
    • 要使用时态渲染器渲染,除了渲染器以外,请指定 latestObservationRenderertrackLinesRendererobservationAger 属性。
    • observationAger(可选):时态渲染器支持两种类型的 observationAgerrampAgerclassBreaksAger。 对于任何给定请求,图层可以包含 rampAgerclassBreaksAger,但不能同时包含两者。
  • definitionExpression(可选):用于限制将绘制哪些要素的 SQL 语句。
  • objectIds(可选):根据对象 ID 来限定绘制哪些要素。
  • timeInfo(可选):
    • trackIdField(可选):唯一表示给定对象或正被观察的对象的字段。 如果该字段为空或未填写,则使用 latestObservationRenderer 将只绘制最新的观察结果。
  • geometry(可选):通过几何来限定要绘制的要素。
  • geometryType(可选):指定几何时,必须提供此项。
  • spatialRel(可选):执行查询时要应用于输入几何的空间关系。
  • relationParam(可选):执行查询时,可应用的空间关联函数。 此空间关联函数的示例为 FFFTTT***
  • selectionObjectIds(可选):使用提供的符号高亮显示具有给定对象 ID 的要素;必须设置 selectionSymbol
  • selectionSymbol(可选):使用此符号来突出显示要素。 指定 selectionObjectIds 时需要它。
  • 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(必选):kmz 文件的 URL。
  • 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(必选):图层的集合。 图层具有两个属性:layerDefinitionfeatureSet
  • layerDefinition(必选):包含定义图层的属性:namegeometryTypedrawingInfoobjectIdFieldfields
  • name(可选):图层的名称。
  • geometryType(必选):对于文本图层,geometryType 必须为 esriGeometryPoint
  • drawingInfo(可选):如果缺少 drawingInfo,则图形用符号进行符号化处理。
  • objectIdField(可选):包含对象 ID 的字段的名称。
  • fields(可选):字段的集合。
  • featureSet(必选):要素容器。
  • features(必选):要素的集合。
  • geometry(必选):定义要素或图形的几何形状。
  • attributes(可选):要素属性的集合。
  • symbol(可选):如果指定,此符号覆盖渲染器中定义的符号。

通过 URL 的逗号分隔值 (CSV) 文件的语法示例

"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(必选):包含 X 坐标的字段的名称。

其他属性

注:

有关下列属性的详细信息,请参阅 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
    }
  ]
}

作为 basemapLayer 的 Bing 地图的语法示例

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

作为 basemapLayerOpenStreetMap 的语法示例

"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 服务的制作者名单。

作为 basemapLayerWebTiledLayer 的语法示例

"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对应缩放级别,而 colrow 分别代表切片的列和行。
  • subDomains(可选):其中一个指定的 subDomains 将用于替换 urlTemplate 中的 {subDomain} 占位符,从而构成切片请求 URL。
  • tileInfo(可选):定义图层的切片信息,包括细节层次、行、列、原点和空间参考。 如果未提供 tileInfo,则假定图层位于使用 Web 墨卡托切片方案的 Web 墨卡托中。 有关 tileInfo 的详细信息,请参阅 ArcGIS REST API
  • credits(可选):确认图层的共同制作者。

作为 basemapLayer 的 WMTS 的语法

"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 中的相应动态文本ArcMap 中的相应动态文本
titleText<dyn type="layout" property="metadata" attribute="title" emptyStr=""/><dyn type="document" property="title" />
authorText<dyn type="layout" property="metadata" attribute="contactname" emptyStr=""/><dyn type="document" property="author" />
copyrightText<dyn type="layout" property="metadata" attribute="credits" emptyStr=""/><dyn type="document" property="credits" />
注:

有关详细信息,请参阅 ArcGIS 帮助中的 dynamicText

语法示例

"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": "esriKilometers",
    "metricLabel": "km",
    "nonMetricUnit": "esriMiles",
    "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(可选):用于指示单位的标注方式的字符串,例如 KM、Kilometers 或 kms。 如果未指定此项或传递的是空字符串,则使用单位的文本值。
    • nonMetricUnit(可选):将比例尺的单位设置为非公制单位。
    • nonMetricLabel(可选):用于指示单位的标注方式的字符串,例如 Miles 或 mi。 如果未指定此项或传递的是空字符串,则使用单位的文本值。
  • customTextElements(可选):这是名称-值对的数组。 如果想要更新页面布局上文本元素的文本(不是动态文本),则需使用此项。 值必须为字符串。
  • legendOptions(可选):指定布局上图例元素的属性。 请注意,如果布局上的图例元素为空(不包含任何图层),将由打印服务移除。
    • operationalLayers(可选):指定要将其图例将添加到布局的业务图层。
      • id:表示图层 ID 的字符串。 此 ID 必须唯一,并且必须与定义业务图层的 operationalLayers 元素中的图层 ID 匹配。
      • subLayerIds(可选):子图层的数组,这些子图层的元素类型为字符串或长整型,并且与业务图层类型相关。 例如,对于地图服务图层,其必须为数字;对于 WMS 图层,其必须为字符串。 建议为具有子图层的业务图层指定 subLayerIds 值。 如果忽略此项,则对于地图服务图层和 WMS 图层,会将所有子图层的图例添加到布局上的图例元素。 对于要素图层或图形图层,无需设置子图层属性。

局限性

渲染器类型为分类间隔或简单渲染器时,不支持注释图层中覆盖的要素级符号。