描述
从地图或底图生成矢量切片,并将切片进行打包从而创建单个 .vtpk 文件。
使用方法
输入地图必须具有相应的描述和标签,此工具才能执行。要添加描述和标签,请右键单击内容窗格中的地图名称,然后单击属性。在元数据选项卡上输入描述和一些标签,作为对地图的说明。
某些符号系统无法在切片创建过程中解析。符号化图层时应避免使用 影线或渐变填充,沿线或面轮廓标记,或大部分符号效果。带有复杂短划线样式的笔划符号图层将被解析为输出切片中的开合短划线。移动效果(通常用于模拟建筑物要素上的下拉阴影效果)是一种受支持的符号效果。
如果生成的切片包小于 2 GB,您可以在浏览器中直接将其上传至 ArcGIS Online 或 ArcGIS Enterprise。否则,可使用共享包工具将其上传至 ArcGIS Online 或 ArcGIS Enterprise。
有关创建和符号化矢量切片的详细信息,请参阅为创建矢量切片制作地图和矢量切片中的符号系统。
语法
arcpy.management.CreateVectorTilePackage(in_map, output_file, service_type, {tiling_scheme}, {tile_structure}, {min_cached_scale}, {max_cached_scale}, {index_polygons}, {summary}, {tags})
参数 | 说明 | 数据类型 |
in_map | 用于生成切片并对其进行打包的地图。输入地图必须具有元数据描述和标签。 | Map |
output_file | 输出矢量切片包。包的文件扩展名为 .vtpk。 | File |
service_type | 确定是从现有地图服务生成切片方案还是根据 ArcGIS Online、Bing 地图和 Google 地图生成地图切片。
| Boolean |
tiling_scheme (可选) | 若将 service_type 参数设置为 EXISTING,则将使用矢量切片服务或切片方案文件。切片方案尺寸必须为 512 × 512,并且连续缩放比例为 2。 | MapServer; File |
tile_structure (可选) | 请指定是使用索引结构对切片生成结构进行优化,还是在所有细节层次上将其优化为所有切片的平面数组。经优化的索引结构为默认设置,其产生的缓存较小。
| String |
min_cached_scale (可选) | 生成切片的最小比例。这不必是您的切片方案中的最小比例。由最小缓存比例决定生成缓存时将使用哪个比例。 | Double |
max_cached_scale (可选) | 生成切片的最大比例。这不必是您的切片方案中的最大比例。由最大缓存比例决定生成缓存时将使用哪个比例。 | Double |
index_polygons (可选) | 依照要素密度指定预生成切片索引,仅在 tile_structure 参数为 INDEXED 时可用。使用创建矢量切片索引工具创建索引面。如果此参数中未指定索引面,则处理过程中将生成优化的索引面,以辅助切片的创建,但这些索引面不会保存或输出。 | Feature Layer |
summary (可选) | 将摘要信息添加到输出矢量切片包的属性中。 | String |
tags (可选) | 将标签信息添加到输出矢量切片包的属性中。用逗号或分号将多个标签隔开。 | String |
代码示例
以下脚本显示了如何在 Python 窗口中使用 CreateVectorTilePackage 工具为工程中的第一个地图创建矢量切片包。
import arcpy
arcpy.env.workspace = "C:/TilePackageExample"
aprx = arcpy.mp.ArcGISProject("CURRENT")
map = aprx.listMaps()[0]
arcpy.CreateVectorTilePackage_management(map, 'Example.vtpk', "ONLINE", "", "INDEXED", 295828763.795777, 564.248588)
此独立脚本显示的是使用 CreateVectorTilePackage 工具的示例。
# Name: CreateVectorTilePackage.py
# Description: Find all the maps in the project and
# create a vector tile package for each map
# import system modules
import os
import arcpy
#set environment settings
arcpy.env.overwriteOutput = True
outputPath = "C://Tilepackages//"
# Loop through the project, find all the maps, and
# create a vector tile package for each map,
# using the same name as the map
p = arcpy.mp.ArcGISProject("c:\\temp\\myproject.aprx")
for m in p.listMaps():
print("Packaging " + m.name)
arcpy.CreateVectorTilePackage_management(m, outputPath + m.name + '.vtpk', "ONLINE", "", "INDEXED", 295828763.795777, 564.248588)
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是