描述
从地图或底图生成切片,并将切片进行打包从而创建单个压缩的 .tpk 文件。
使用方法
输入地图必须具有相应的描述和标签,此工具才能执行。要添加描述和标签,请在内容窗格中右键单击地图名称,选择属性,然后在描述选项卡上输入描述和标签。
针对切片格式参数选择 PNG 后,工具将根据指定的显示级别自动选择正确格式(PNG8、PNG24 或 PNG32)。
此工具支持并行处理因子环境。如果环境未设置(默认情况下)或已设置为 100,则将启用完全并行处理,同时该工具尝试将工作分配给计算机上的所有逻辑内核。将环境设置为 0 将禁用并行处理。在 1 到 99 之间指定一个因子时,工具将通过应用以下公式确定要使用的逻辑内核的百分比,其结果将向上舍入到最近的整数值:
获取 ArcGIS 组织中的要素图层。Parallel Processing Factor / 100 * Logical Cores
如果此公式的结果是 0 或 1,则将不启用并行处理。
语法
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})
参数 | 说明 | 数据类型 |
in_map | 用于生成切片并对其进行打包的地图。 | Map |
service_type | 指定是从现有的地图服务生成切片方案,还是根据 ArcGIS Online、Bing 地图和 Google 地图生成地图切片。
| Boolean |
output_file | 输出地图切片包。 | File |
format_type | 指定生成切片的格式。
| String |
level_of_detail | 生成包切片的最高比例。默认值为 1。可能的值为 1 至 24。 较大的值反映较大的比例,可以显示更多细节,但是占用更多存储空间,较小的值反映较小的比例,显示的细节较少,占用的存储空间也较少。 此值必须大于或等于 min_level_of_detail。 | Long |
service_file (可选) | 用于切片方案的地图服务或 XML 文件的名称。仅当 service_type 参数为 EXISTING 时才需要此参数。 | MapServer; File |
summary (可选) | 将摘要信息添加到包的属性中。 | String |
tags (可选) | 将标签信息添加到包的属性中。可以添加多个标签,用逗号或分号分隔。 | String |
extent (可选) | 指定用于选择或裁剪要素的范围。
| Extent |
compression_quality (可选) | 针对 JPEG 压缩质量的介于 1 和 100 之间的值。对于 JPEG 切片格式,默认值为 75;对于其他切片格式,默认值为 0。 仅 JPEG 和 MIXED 格式支持压缩。如果选择较高的值,则生成的文件较大,但图像质量较好。如果选择较低的值,则生成的文件较小,但图像质量较差。 | Long |
package_type (可选) | 指定将创建的切片包类型。
| String |
min_level_of_detail (可选) | 生成包切片的最低比例。默认值为 1。可能的值为 1 至 24。 较大的值反映较大的比例,可以显示更多细节,但是占用更多存储空间,较小的值反映较小的比例,显示的细节较少,占用的存储空间也较少。 此值必须小于或等于 level_of_detail。 | Long |
代码示例
以下 Python 脚本演示了如何在 Python 窗口中使用 CreateMapTilePackage 工具。
import arcpy
arcpy.env.workspace = "C:/TilePackageExample"
arcpy.CreateMapTilePackage_management("World Soils", "ONLINE", "Example.tpk", "PNG8", "10")
针对工程中的所有地图,查找并创建地图切片包。
# Name: CreateMapTilePackage.py
# Description: Find all the maps in the project and
# create a map tile package for each map
# import system modules
import os
import arcpy
# Set environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = "C:/Tilepackages"
# Loop through the project, find all the maps, and
# create a map 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.CreateMapTilePackage_management(m, "ONLINE", "{}.tpk".format(m.name),
"PNG8", "10")
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是