创建地图切片包 (数据管理)

摘要

可根据地图生成切片,并将其打包为单个切片包或者多个较小的切片包。

使用情况

  • 此工具支持并行处理因子环境变量。 如果选中创建多个包参数,则并行处理将跨多个进程生成缓存内容以使用可用 CPU,并在达到默认阈值(1 GB 大小限制)时生成切片包。

  • 当处理大量数据时,请使用创建多个包参数。 选中此参数后,将创建多个较小的切片包,而非单个较大的切片包。 由此可在单个作业中生成大于 500 GB 的切片内容,并将其共享或者将其上传并发布到 ArcGIS Online 作为托管切片图层。 使用此方法,您可以将较大的切片内容生成为较小的切片包以进行共享,而无需将缓存范围和级别细分为多个作业。

    如果选中此参数,则必须在输出文件夹参数中提供文件系统上一个空文件夹的路径,用于保存输出包。 仅当包类型参数设置为 tpkx 并且并行处理因子环境变量不为 0 时,才能创建多部件包。

  • 切片格式参数设置为 PNG 时,该工具将根据为最高细节层次参数指定的值自动使用正确的格式(PNG8、PNG24 或 PNG32)。

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

参数

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

用于生成切片并对其进行打包的地图。

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

指定是从现有的地图服务生成切片方案,还是根据 ArcGIS Online、Bing Maps 和 Google Maps 生成地图切片。

  • 选中 - 将使用 ArcGIS Online/Bing Maps/Google Maps 切片方案。 这是默认设置。

    ArcGIS Online/Bing Maps/Google Maps 切片方案可用于将缓存切片与这些在线地图服务的切片进行叠加。 加载切片方案时,ArcGIS Desktop 以内置选项形式包括此切片方案。 选择此切片方案时,源地图必须使用 WGS84 Web Mercator(辅助球体)投影坐标系。

    如果要将包与 ArcGIS Online、Bing 地图或 Google 地图进行叠加,则需要使用 ArcGIS Online/Bing 地图/Google 地图切片方案。 ArcGIS Online/Bing 地图/Google 地图切片方案的优势在于其在 Web 地图领域内的高熟识度,所以切片将与其他使用此切片方案的组织的切片相一致。 即使您不打算叠加这些广为熟知的地图服务,仍然可以选择此切片方案以便于互操作。

    ArcGIS Online/Bing 地图/Google 地图切片方案可能包含过度放大以至于无法在地图中使用的比例。 在大比例下进行打包将花费很多时间,且会占用大量磁盘存储空间。 例如,切片方案中的最大比例约为 1:1,000。 在此比例下缓存整个美国大陆可能将耗费数周时间并需要数百 GB 的存储空间。 如果尚未准备好在此比例级别下进行打包,则在创建切片包时移除此比例级别。

  • 未选中 - 使用一个现有地图服务的切片方案。

    如果您的组织已在服务器上创建现有服务的切片方案并且您想要与其进行匹配,则请选择此选项。 相匹配的切片方案可确保切片在您的 Maps SDKs 应用程序中正确叠加。

    如果选择此选项,则源地图和用于导入切片方案的地图将使用相同的坐标系。

Boolean
输出文件

地图切片包的输出路径和文件名。 如果选中创建多个包参数,则此参数将替换为输出文件夹参数,用于指定将生成切片文件包的位置。

File
切片格式

指定生成切片将使用的格式。

  • PNG将根据指定的最高细节层次参数值使用正确的格式(PNG8、PNG24 或 PNG32)。 这是默认设置。
  • PNG(8 位)将使用 PNG8 格式。 可将此格式用于需要具有透明背景的叠加服务,例如道路和边界。 PNG8 可在磁盘上创建非常小的切片且不损失任何信息。如果地图包含的颜色超过 256 种,请勿使用 PNG8。 影像、山体阴影、梯度填充、透明度和抗锯齿可以在地图中使用超过 256 种颜色。 符号(如高速公路盾形路牌符号)也可能在其边缘周围具有细微的抗锯齿,从而使地图包含意料之外的更多颜色。
  • PNG(24 位)将使用 PNG24 格式。 可将此格式用于超过 256 种颜色的叠加服务,例如道路和边界。如果少于 256 种颜色,请使用 PNG8。
  • PNG(32 位)将使用 PNG32 格式。 此格式用于超过 256 种颜色的叠置服务,如道路和边界。 PNG32 适用于对线或文本启用抗锯齿的叠加服务。 PNG32 在磁盘上创建的切片比 PNG24 更大。
  • JPEG将使用 JPEG 格式。 此格式用于颜色变化较大但不需要透明背景的底图服务。 例如,栅格影像和详细的矢量底图特别适合使用 JPEG。JPEG 为有损图像格式。 在不影响图像显示效果的情况下,它会尝试有选择地移除数据。 这会在磁盘上产生很小的切片,但如果地图包含矢量线作业或标注,它可能会在线周围生成过多的噪声或模糊区域。 如果发生这种情况,可将压缩值从默认的 75 增加到更大的值。 更高的值(如 90)可以生成可接受的线作业质量,同时还可保证 JPEG 格式的小切片优势。如果愿意接受图像中存在少量噪声,则可以使用 JPEG 节省大量的磁盘空间。 较小的切片大小也意味着应用程序可以更快地下载切片。
  • 混合将在包的中心使用 JPEG 格式,在包的边缘使用 PNG32。 要在其他图层上完全叠加栅格包时,请使用混合模式。创建混合包时,将在检测到透明度的位置(也就是地图背景可见的位置)创建 PNG32 切片。 其余切片使用 JPEG 构建。 这可降低平均文件大小,同时可在其他包上进行完全叠加。 如果在这种情况下不使用混合模式包,则可以在图像叠加其他包的外围区域看到一个不透明的凸边。
String
最高细节层次

与用于定义缓存切片方案的比例数相对应的整数表达。 此比例值用于定义在切片包中生成缓存切片的最高级别。 较大的值反映可以显示更多细节的较大比例,但占用的存储空间较多。 较小的值反映可以显示较少细节的较小比例,并且占用的存储空间较少。 可能的值范围为 1 至 23。 默认值为 1。 最大细节层次值必须大于最小细节层次值。

Long
服务
(可选)

将用于切片方案的地图服务或 .xml 文件的名称。 仅当未选中适用于 ArcGIS Online | Bing Maps | Google Maps 的包参数时才需要此参数。

Map Server; File
摘要
(可选)

将添加到包属性的摘要信息。

String
标签
(可选)

将添加到包属性的标签信息。 可以添加多个标签,用逗号或分号分隔。

String
范围
(可选)

指定用于选择或裁剪要素的范围。

  • 当前显示范围 地图视图 - 范围基于活动地图或场景。 仅在存在活动地图时,才可使用此选项。
  • 绘制范围 构造直角并完成草图 - 范围将基于在地图或场景上绘制的矩形。 此选项将在工程地理数据库中创建要素类并将图层添加至地图。 该要素类的坐标系将与地图相同。
    注:

    环境对话框中不提供此选项。 只能在具有范围数据类型的工具参数中或工具对话框的环境选项卡中找到此选项。

    注:

    当选中从“编辑”选项卡启用和禁用编辑编辑选项时,必须在编辑功能区选项卡上启用编辑才能绘制范围。

  • 图层范围 图层 - 范围基于活动地图图层。 使用下拉列表选择可用图层,或使用所有图层中数据的范围选项获取所有活动地图图层(不包括底图)的组合范围。 仅在存在具有图层的活动地图时,才可使用此选项。

    每个地图图层具有以下选项:

    • 所有要素 全选 - 图层中所有要素的范围。
    • 选定要素基于选定要素的区域 - 图层中选定要素的范围。
    • 可见要素 Extent Indicator - 图层中可见要素的范围。
      注:

      选定要素 基于选定要素的区域可见要素 Extent Indicator 选项中的范围仅适用于要素图层。

  • 浏览 浏览 - 范围基于现有数据集。
  • 输入的交集 相交 - 范围将基于所有输入的最小或交叉范围。 如果输入未重叠,则结果为包含所有零值的空范围。
  • 输入的并集 联合 - 范围将基于所有输入的最大或合并范围。
  • 剪贴板 粘贴 - 可在剪贴板中复制和粘贴范围。
    • 复制范围 复制 - 将范围坐标和坐标系复制到剪贴板。
    • 粘贴范围 粘贴 - 从剪贴板粘贴范围坐标和(可选)坐标系。 如果剪贴板值不包含坐标系,则范围将使用地图的坐标系。
    注:

    将使用与 ArcPy Extent 对象相同的格式和顺序从剪贴板中复制和粘贴范围坐标:x-min、y-min、x-max、y-max 和空间参考。

  • 重置范围 重置 - 将范围重置为默认值。
  • 手动输入坐标 - 坐标必须是数值,并且与活动地图的坐标系相匹配。
    警告:

    地图可能使用与输入的坐标不同的显示单位。 不支持使用主方向(N、S、E、W)。 在南纬和西经坐标中使用负号。

Extent
压缩质量
(可选)

用于 JPEG 压缩质量的介于 1 和 100 之间的值。 对于 JPEG 切片格式,默认值为 75;对于其他切片格式,默认值为 0。

仅 JPEG 和混合格式支持压缩。 如果选择较高的值,则生成的文件较大,但图像质量较好。 如果选择较低的值,则生成的文件较小,但图像质量较差。

Long
包类型
(可选)

指定将创建的切片包类型。

  • tpk将创建 .tpk 文件。 切片将使用 Compact 存储格式进行存储。 整个 ArcGIS 均支持此格式。
  • tpkx将创建 .tpkx 文件。 切片将使用 CompactV2 存储格式进行存储,该格式可提供更好的网络共享和云存储目录性能。 ArcGIS 产品的较新版本(例如 ArcGIS Online 7.1、ArcGIS Enterprise 10.7 和 ArcGIS Runtime 100.5)均支持此包结构类型。 这是默认设置。
String
最低细节层次
(可选)

与用于定义缓存切片方案的比例数相对应的整数表达。 此比例值用于定义在切片包中生成的缓存切片开始可用的级别。 可能的值范围为 0 至 23。 默认值为 0。 最小细节层次值必须小于或等于最大细节层次值。

Long
感兴趣区域
(可选)

用于限制将创建切片的位置的要素集。 使用感兴趣区域为不规则形状区域或多部件要素创建切片。 不会缓存感兴趣区域要素边界框外的区域。 如果未为此参数提供值,则感兴趣区域将为输入地图的全图范围。

Feature Set
创建多个包
(可选)

指定将生成单个较大的切片包,还是多个较小的切片包。 当并行处理因子环境变量为 0 或者包类型参数设置为 tpk 时,此参数将不可用。

  • 选中 - 将在输出文件夹参数中定义的位置生成多个切片包(每个大小约为 1 GB)。
  • 未选中 - 将在输出文件参数中定义的位置生成单个切片包。 这是默认设置。

Boolean
输出文件夹

将生成多个切片包的位置。 如果输出文件夹不为空,则将在输出文件夹中创建一个子文件夹以存储切片。 自动生成的 GUID 将用作文件夹名称。

如果未选中创建多个包参数,则此参数将替换为输出文件参数,用于指定将生成的单个切片包的名称。

Folder

arcpy.management.CreateMapTilePackage(in_map, service_type, output_file, format_type, level_of_detail, {service_file}, {summary}, {tags}, {extent}, {compression_quality}, {package_type}, {min_level_of_detail}, {area_of_interest}, {create_multiple_packages}, output_folder)
名称说明数据类型
in_map

用于生成切片并对其进行打包的地图。

Map
service_type

指定是从现有的地图服务生成切片方案,还是根据 ArcGIS Online、Bing Maps 和 Google Maps 生成地图切片。

  • EXISTING使用一个现有地图服务的切片方案。 必须在 service_file 参数中指定地图服务。如果您的组织已在服务器上创建现有服务的切片方案并且您想要与其进行匹配,则请选择此选项。 相匹配的切片方案可确保切片在您的 Maps SDKs 应用程序中正确叠加。如果选择此选项,则源地图和用于导入切片方案的地图将使用相同的坐标系。
  • ONLINE将使用 ArcGIS Online/Bing Maps/Google Maps 切片方案。 这是默认设置。ArcGIS Online/Bing Maps/Google Maps 切片方案可用于将缓存切片与这些在线地图服务的切片进行叠加。 加载切片方案时,ArcGIS Desktop 以内置选项形式包括此切片方案。 选择此切片方案时,源地图必须使用 WGS84 Web Mercator(辅助球体)投影坐标系。如果要将包与 ArcGIS Online、Bing 地图或 Google 地图进行叠加,则需要使用 ArcGIS Online/Bing 地图/Google 地图切片方案。 ArcGIS Online/Bing 地图/Google 地图切片方案的优势在于其在 Web 地图领域内的高熟识度,所以切片将与其他使用此切片方案的组织的切片相一致。 即使您不打算叠加这些广为熟知的地图服务,仍然可以选择此切片方案以便于互操作。ArcGIS Online/Bing 地图/Google 地图切片方案可能包含过度放大以至于无法在地图中使用的比例。 在大比例下进行打包将花费很多时间,且会占用大量磁盘存储空间。 例如,切片方案中的最大比例约为 1:1,000。 在此比例下缓存整个美国大陆可能将耗费数周时间并需要数百 GB 的存储空间。 如果尚未准备好在此比例级别下进行打包,则在创建切片包时移除此比例级别。
Boolean
output_file

地图切片包的输出路径和文件名。

File
format_type

指定生成切片将使用的格式。

  • PNG将根据指定的最高细节层次参数值使用正确的格式(PNG8、PNG24 或 PNG32)。 这是默认设置。
  • PNG8将使用 PNG8 格式。 可将此格式用于需要具有透明背景的叠加服务,例如道路和边界。 PNG8 可在磁盘上创建非常小的切片且不损失任何信息。如果地图包含的颜色超过 256 种,请勿使用 PNG8。 影像、山体阴影、梯度填充、透明度和抗锯齿可以在地图中使用超过 256 种颜色。 符号(如高速公路盾形路牌符号)也可能在其边缘周围具有细微的抗锯齿,从而使地图包含意料之外的更多颜色。
  • PNG24将使用 PNG24 格式。 可将此格式用于超过 256 种颜色的叠加服务,例如道路和边界。如果少于 256 种颜色,请使用 PNG8。
  • PNG32将使用 PNG32 格式。 此格式用于超过 256 种颜色的叠置服务,如道路和边界。 PNG32 适用于对线或文本启用抗锯齿的叠加服务。 PNG32 在磁盘上创建的切片比 PNG24 更大。
  • JPEG将使用 JPEG 格式。 此格式用于颜色变化较大但不需要透明背景的底图服务。 例如,栅格影像和详细的矢量底图特别适合使用 JPEG。JPEG 为有损图像格式。 在不影响图像显示效果的情况下,它会尝试有选择地移除数据。 这会在磁盘上产生很小的切片,但如果地图包含矢量线作业或标注,它可能会在线周围生成过多的噪声或模糊区域。 如果发生这种情况,可将压缩值从默认的 75 增加到更大的值。 更高的值(如 90)可以生成可接受的线作业质量,同时还可保证 JPEG 格式的小切片优势。如果愿意接受图像中存在少量噪声,则可以使用 JPEG 节省大量的磁盘空间。 较小的切片大小也意味着应用程序可以更快地下载切片。
  • MIXED将在包的中心使用 JPEG 格式,在包的边缘使用 PNG32。 要在其他图层上完全叠加栅格包时,请使用混合模式。创建混合包时,将在检测到透明度的位置(也就是地图背景可见的位置)创建 PNG32 切片。 其余切片使用 JPEG 构建。 这可降低平均文件大小,同时可在其他包上进行完全叠加。 如果在这种情况下不使用混合模式包,则可以在图像叠加其他包的外围区域看到一个不透明的凸边。
String
level_of_detail

与用于定义缓存切片方案的比例数相对应的整数表达。 此比例值用于定义在切片包中生成缓存切片的最高级别。 较大的值反映可以显示更多细节的较大比例,但占用的存储空间较多。 较小的值反映可以显示较少细节的较小比例,并且占用的存储空间较少。 可能的值范围为 1 至 23。 默认值为 1。 最大细节层次值必须大于最小细节层次值。

Long
service_file
(可选)

将用于切片方案的地图服务或 .xml 文件的名称。 仅当 service_type 参数设置为 EXISTING 时才需要此参数。

Map Server; File
summary
(可选)

将添加到包属性的摘要信息。

String
tags
(可选)

将添加到包属性的标签信息。 可以添加多个标签,用逗号或分号分隔。

String
extent
(可选)

指定用于选择或裁剪要素的范围。

  • MAXOF - 将使用的所有输入的最大范围。
  • MINOF - 将使用的所有输入共用的最小范围。
  • DISPLAY - 范围与可见显示范围相等。
  • 图层名称 - 将使用指定图层的范围。
  • Extent 对象 - 将使用指定对象的范围。
  • 以空格分隔的坐标字符串 - 将使用指定字符串的范围。 坐标以 x-min,y-min,x-max,y-max 的顺序表示。
Extent
compression_quality
(可选)

用于 JPEG 压缩质量的介于 1 和 100 之间的值。 对于 JPEG 切片格式,默认值为 75;对于其他切片格式,默认值为 0。

仅 JPEG 和混合格式支持压缩。 如果选择较高的值,则生成的文件较大,但图像质量较好。 如果选择较低的值,则生成的文件较小,但图像质量较差。

Long
package_type
(可选)

指定将创建的切片包类型。

  • tpk将创建 .tpk 文件。 切片将使用 Compact 存储格式进行存储。 整个 ArcGIS 均支持此格式。
  • tpkx将创建 .tpkx 文件。 切片将使用 CompactV2 存储格式进行存储,该格式可提供更好的网络共享和云存储目录性能。 ArcGIS 产品的较新版本(例如 ArcGIS Online 7.1、ArcGIS Enterprise 10.7 和 ArcGIS Runtime 100.5)均支持此包结构类型。 这是默认设置。
String
min_level_of_detail
(可选)

与用于定义缓存切片方案的比例数相对应的整数表达。 此比例值用于定义在切片包中生成的缓存切片开始可用的级别。 可能的值范围为 0 至 23。 默认值为 0。 最小细节层次值必须小于或等于最大细节层次值。

Long
area_of_interest
(可选)

用于限制将创建切片的位置的要素集。 使用感兴趣区域为不规则形状区域或多部件要素创建切片。 不会缓存感兴趣区域要素边界框外的区域。 如果未为此参数提供值,则感兴趣区域将为输入地图的全图范围。

Feature Set
create_multiple_packages
(可选)

指定将生成单个较大的切片包,还是多个较小的切片包。 当 parallelProcessingFactor 环境变量为 0 或者 package_type 参数设置为 tpk 时,此参数将不可用。

  • CREATE_MULTIPLE_PACKAGES将在 output_folder 参数中定义的位置生成多个切片包(每个大小约为 1 GB)。
  • CREATE_SINGLE_PACKAGE将在 output_file 参数中定义的位置生成单个切片包。 这是默认设置。
Boolean
output_folder

将生成多个切片包的输出文件夹。 如果输出文件夹不为空,则将在输出文件夹中创建一个子文件夹以存储切片。 自动生成的 GUID 将用作文件夹名称。

Folder

代码示例

CreateMapTilePackage 示例 1(Python 窗口)

以下 Python 脚本演示了如何在 Python 窗口中使用 CreateMapTilePackage 函数。

import arcpy
arcpy.env.workspace = r"C:\Data\MinMaxLOD\states73K"
aprx = arcpy.mp.ArcGISProject(r"C:\Data\MinMaxLOD\states73K\states73K_1.aprx")
map1 = aprx.listMaps()[0]
arcpy.management.CreateMapTilePackage(map1, "ONLINE", "Example.tpkx", "PNG", "5")
CreateMapTilePackage 示例 2(独立脚本)

查找工程中的所有地图,并为每个地图创建单个地图切片包。

# Name: CreateMapTilePackage.py
# Description: Find all the maps in the project and
#   create a single map tile package for each map

# import system modules
import os
import arcpy

# Set environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = r"C:\Data\MinMaxLOD\states73K"

# Loop through the project, find all the maps, and
#   create a single map tile package for each map,
#   using the same name as the map
p = arcpy.mp.ArcGISProject("c:\\temp\\myproject.aprx")
extent = ""
aoi = ""

for m in p.listMaps():
    print("Packaging " + m.name)
    arcpy.management.CreateMapTilePackage(m, "ONLINE", "{}.tpkx".format(m.name), 
                                            "PNG", 9, None, "MapSummary", "MapTag", extent, "", "tpkx", 5, aoi)
CreateMapTilePackage 示例 3(独立脚本)

为给定地图创建多个地图切片包。

# Name: CreateMapTilePackage.py
# Description: Create multiple map tile packages for a given map

# import system modules
import os
import arcpy

# Set environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = r"C:\Data\MinMaxLOD\states73K"

# Create multiple map tile packages for given map,

aprx = arcpy.mp.ArcGISProject("c:\\temp\\myproject.aprx")
map1 = aprx.listMaps()[0]
extent = ""
aoi = ""
createMultiplePackages = "create_multiple_packages"
outputFolder = r"C:\11\multi"

arcpy.management.CreateMapTilePackage(map1, "ONLINE", "", "PNG", 9, None, "MapSummary", "MapTag",
                                      extent, "", "tpkx", 5, aoi,createMultiplePackages, outputFolder )

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题