打包地图 (数据管理)
摘要
对地图文档以及所有引用的数据源进行打包可创建经过压缩的单个 .mpk 文件。
插图
用法
当使用此工具遇到不支持的图层类型(逻辑示意图或工具图层)时将会发出警告。不支持的图层将不会被写入到输出。
输入图层必须具有相应描述此工具才能执行。要添加描述,请右键单击该图层并单击属性,然后输入描述。
-
要对某个地图包进行解包,可将 .mpk 文件拖到 ArcMap 中或者右键单击 .mpk 文件然后单击解包。或者可使用提取包工具并指定一个输出文件夹。
解包将始终按照以下路径将图层包提取到用户配置文件中:
- XP - C:\Documents and Settings\用户名\My Documents\ArcGIS\Packages
- Vista 和 Windows 7 - C:\Users\用户名\Documents\ArcGIS\Packages
选中将数据转换为文件地理数据库时
- 压缩栅格格式将转换为文件地理数据库栅格。
- 压缩矢量格式(例如 SDC 格式)将转换为文件地理数据库要素类,并且原来的压缩数据将会丢失。
取消选中将数据转换为文件地理数据库时
- 将保留输入图层的格式,但有一个例外:在个人地理数据库中引用数据的图层将始终转换为文件地理数据库。
- 每个数据源都将保留其原始格式。文件地理数据库将被合并到版本特定的文件夹中,所有其他格式将被合并到 commonData 文件夹中。
- 指向 ArcSDE 数据源的图层将保留其连接信息并保持指向合并的文件夹或数据包中的 ArcSDE 数据源。
- ADRG、CADRG/ECRG、CIB 和 RPF 栅格格式将始终转换为文件地理数据库栅格。ArcGIS 无法直接写出这些格式。为了提高效率,它们将始终被转换为文件地理数据库栅格。
- 即使在范围参数中指定了范围,也不会裁剪压缩栅格和矢量格式。
-
对于包含连接的图层或加入到关系类中的图层,所有连接的或相关的数据源将被合并到输出文件夹中。
-
对于要素图层,范围参数用于选择将被合并的要素。对于栅格图层,范围参数用于裁剪栅格数据集。
-
某些数据集会引用其他数据集。例如,您可能有一个引用了四个要素类的拓扑数据集。引用了其他数据集的其他数据集示例包括几何网络、网络和定位器。基于这些类型的数据集合并或打包图层时,也将合并或打包这些参与的数据集。
如果选中仅方案参数,将仅合并该输入数据源的方案。方案是某个要素类或表的结构或设计,此表由字段和表定义、坐标系属性、符号系统、定义查询等组成。数据或记录不会被合并。
不会合并或打包不支持“仅方案”的数据源。如果选中了仅方案参数且工具遇到了不支持“仅方案”的图层,将显示警告信息并跳过此图层。如果指定的唯一图层不支持“仅方案”,则该工具将失败。
合并或打包 Coverage 或 VPF 图层会将整个 Coverage 或 VPF 数据集复制到合并的文件夹或数据包中。
语法
参数 | 说明 | 数据类型 |
in_map |
要打包的地图文档。 | ArcMap Document |
output_file |
输出地图包的名称和位置 (.mpk)。 | File |
convert_data (可选) |
指定输入图层是转换为文件地理数据库还是保留原始格式。
| Boolean |
convert_arcsde_data (可选) |
指定输入图层是转换为文件地理数据库还是保留原始格式。
| Boolean |
extent (可选) |
通过使用格式 X-Min Y-Min X-Max Y-Max 在范围参数中手动输入坐标的方式来指定范围。此外,如果要使用特定图层的范围,只需将该图层名称添加到范围参数中即可。
| Extent |
apply_extent_to_arcsde (可选) |
指定将用于选择 ArcSDE 数据源的范围。
| Boolean |
代码示例
以下 Python 脚本演示了如何在 Python 窗口中使用“打包地图”工具。
import arcpy arcpy.env.workspace = "C:/arcgis/ArcTutor/Editing" arcpy.PackageMap_management('Exercise1.mxd', 'EditingExercise1.mpk', "PRESERVE", "CONVERT_ARCSDE", "#", "ALL")
查找位于指定文件夹中的所有地图文档,然后分别为这些地图文档创建地图包。
# Name: PackageMap.py # Description: Find all the map documents that reside in a specified folder and create map packages for each map document. # Author: ESRI # import system modules import os import arcpy from arcpy import env # Set environment settings env.overwriteOutput = True env.workspace = "C:/arcgis/ArcTutor/Editing" # Loop through the workspace, find all the mxds and create a map package using the same name as the mxd for mxd in arcpy.ListFiles("*.mxd"): print "Packaging " + mxd arcpy.PackageMap_management(mxd, os.path.splitext(mxd)[0] + '.mpk', "PRESERVE", "CONVERT_ARCSDE", "#", "ALL")