创建矢量切片包 (数据管理)

摘要

从地图或底图生成矢量切片,并将切片打包为单个 .vtpk 文件。

使用情况

  • 输入地图必须包含要运行工具的描述和标签。 要添加描述和标签,请右键单击内容窗格中的地图名称,然后单击属性。 在元数据选项卡上,提供地图的描述和标签。

  • 某些符号系统在创建切片的过程中无法解析。 符号化图层时应避免使用 影线或渐变填充沿线或面轮廓标记,或大部分符号效果。 将在输出切片中使用的符号效果仅包括移动效果(通常用于模拟建筑物要素的下拉阴影效果)、偏移效果虚线效果。 源自虚线效果的复杂虚线样式将在输出切片中解析为简单(开-关)虚线。

  • 如果生成的切片包小于 500 GB,则可以直接在浏览器中将其上传到 ArcGIS OnlineArcGIS Enterprise,或使用共享包工具将其上传到 ArcGIS OnlineArcGIS Enterprise。 另请参阅从缓存数据集发布矢量切片图层

  • 有关创建和符号化矢量切片的详细信息,请参阅为创建矢量切片制作地图矢量切片中的符号系统

参数

标注说明数据类型
输入地图

用于生成切片并对其进行打包的地图。 输入地图必须具有元数据描述和标签。

Map
输出文件

输出矢量切片包。 该包的文件扩展名为 .vtpk

File
适用于 ArcGIS Online | Bing Maps | Google Maps 的包

指定是从现有地图服务生成切片方案还是根据 ArcGIS OnlineBing MapsGoogle Maps 生成地图切片。

  • 选中 - 将使用 ArcGIS Online/Bing Maps/Google Maps 切片方案。 此切片方案可用于将您的缓存切片与这些在线地图服务的切片进行叠加。 加载切片方案时,ArcGIS AllSource 以内置选项形式包括此切片方案。 选择此切片方案时,源地图的数据框必须使用 WGS 1984 Web 墨卡托(辅助球体)投影坐标系。 这是默认设置。
  • 未选中 - 系统将使用现有矢量切片服务的切片方案。 仅支持不同等级间的比例逐渐加倍且有 512 × 512 切片尺寸的切片方案。 必须在切片方案参数中指定矢量切片服务或切片方案文件。

  • Online将使用 ArcGIS Online/Bing Maps/Google Maps 切片方案。 此切片方案可用于将您的缓存切片与这些在线地图服务的切片进行叠加。 加载切片方案时,ArcGIS AllSource 以内置选项形式包括此切片方案。 选择此切片方案时,源地图的数据框必须使用 WGS 1984 Web 墨卡托(辅助球体)投影坐标系。 这是默认设置。
  • 现有系统将使用现有矢量切片服务的切片方案。 仅支持不同等级间的比例逐渐加倍且有 512 × 512 切片尺寸的切片方案。 必须在 tiling_scheme 参数中指定矢量切片服务或切片方案文件。
Boolean
切片方案
(可选)

当未选中适用于 ArcGIS Online、Bing Maps 或 Google Maps 的包参数时,将使用的矢量切片服务或切片方案文件。 切片方案尺寸必须为 512 × 512 并具有 2 倍比率的连续缩放。

Map Server; File
切片格式
(可选)

请指定是使用索引结构对切片生成结构进行优化,还是在所有细节层次上将其优化为所有切片的平面数组。 默认情况下系统会优化索引结构,并生成较小的缓存。

  • 索引将根据要素密度索引生成切片,以优化切片生成和文件大小。 这是默认设置。
  • 平整在不考虑要素密度的情况下,将针对每个细节层次生成常规切片。 此缓存要大于使用索引结构生成的缓存。
String
最小缓存比例
(可选)

将生成切片的最小比例。 这不必是切片方案中的最小比例。 由最小缓存比例确定生成缓存时将使用哪个比例。

Double
最大缓存比例
(可选)

将生成切片的最大比例。 这不必是切片方案中的最大比例。 由最大缓存比例确定生成缓存时将使用哪个比例。

Double
索引面
(可选)

基于要素密度切片预生成索引,该索引仅在切片格式参数设置为索引时适用。 使用创建矢量切片索引工具来创建索引面。 如果未为参数中指定索引面,则在处理过程中将生成优化索引面以辅助切片的创建,但这些索引面无法保存或输出。

Feature Layer
摘要
(可选)

将汇总信息添加到输出矢量切片包的属性中。

String
标签
(可选)

将标签信息添加到输出矢量切片包的属性中。 多个标签之间使用逗号或分号进行分隔。

String

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 OnlineBing MapsGoogle Maps 生成地图切片。

  • ONLINE将使用 ArcGIS Online/Bing Maps/Google Maps 切片方案。 此切片方案可用于将您的缓存切片与这些在线地图服务的切片进行叠加。 加载切片方案时,ArcGIS AllSource 以内置选项形式包括此切片方案。 选择此切片方案时,源地图的数据框必须使用 WGS 1984 Web 墨卡托(辅助球体)投影坐标系。 这是默认设置。
  • EXISTING系统将使用现有矢量切片服务的切片方案。 仅支持不同等级间的比例逐渐加倍且有 512 × 512 切片尺寸的切片方案。 必须在 tiling_scheme 参数中指定矢量切片服务或切片方案文件。
Boolean
tiling_scheme
(可选)

如果将 service_type 参数设置为 EXISTING,则将使用矢量切片服务或切片方案文件。 切片方案尺寸必须为 512 × 512 并具有 2 倍比率的连续缩放。

Map Server; File
tile_structure
(可选)

请指定是使用索引结构对切片生成结构进行优化,还是在所有细节层次上将其优化为所有切片的平面数组。 默认情况下系统会优化索引结构,并生成较小的缓存。

  • INDEXED将根据要素密度索引生成切片,以优化切片生成和文件大小。 这是默认设置。
  • FLAT在不考虑要素密度的情况下,将针对每个细节层次生成常规切片。 此缓存要大于使用索引结构生成的缓存。
String
min_cached_scale
(可选)

将生成切片的最小比例。 这不必是切片方案中的最小比例。 由最小缓存比例确定生成缓存时将使用哪个比例。

Double
max_cached_scale
(可选)

将生成切片的最大比例。 这不必是切片方案中的最大比例。 由最大缓存比例确定生成缓存时将使用哪个比例。

Double
index_polygons
(可选)

基于要素密度的切片预生成索引,该索引仅在 tile_structure 参数设置为 INDEXED 时适用。 使用创建矢量切片索引工具来创建索引面。 如果未为参数中指定索引面,则在处理过程中将生成优化索引面以辅助切片的创建,但这些索引面无法保存或输出。

Feature Layer
summary
(可选)

将汇总信息添加到输出矢量切片包的属性中。

String
tags
(可选)

将标签信息添加到输出矢量切片包的属性中。 多个标签之间使用逗号或分号进行分隔。

String

代码示例

CreateVectorTilePackage 示例 1(Python 窗口)

以下脚本显示了如何在 Python 窗口中使用 CreateVectorTilePackage 函数为工程中的第一个地图创建矢量切片包。

import arcpy
arcpy.env.workspace = "C:/TilePackageExample"
aprx = arcpy.mp.ArcGISProject("CURRENT")
map = aprx.listMaps()[0]
arcpy.management.CreateVectorTilePackage(map, 'Example.vtpk', "ONLINE", "", "INDEXED", 295828763.795777, 564.248588)
CreateVectorTilePackage 示例 2(独立脚本)

此独立脚本显示的是使用 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)