用于地图文档管理和输出的地理处理脚本

arcpy.mapping 地理处理模块简介

arcpy.mapping 模块是一个 Python 脚本库,可用于打开和操作 ArcMap 地图文档 (.mxd) 与图层文件 (.lyr)。通过调用 arcpy.mapping 地理处理脚本,您可打开地图文档和图层;查询和更改内容;以及打印、导出或保存已修改的文档。

arcpy.mapping 脚本中的函数可逼真地模拟 ArcMap 应用程序中执行的操作。请考虑一个简单的 ArcMap 工作流:

  1. 打开位于 C:\GIS\TownCenter_2009.mxd 的地图文档。
  2. 查找任一读取了 GIS Services Division 2009 的布局文本元素,然后将其更改为读取 GIS Services Division 2010
  3. 将更新的地图布局导出至 PDF。

arcpy.mapping 脚本将以如下方式表示这些步骤:

这一简单的查找和替换脚本会将 2009 更改为 2010,然后将布局导出到 PDF 文件中。

mxd = arcpy.mapping.MapDocument(r"C:\GIS\TownCenter_2009.mxd")
for textElement in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
  if textElement.text == "GIS Services Division 2009":
    textElement.text = "GIS Services Division 2010"
arcpy.mapping.ExportToPDF(mxd, r"C:\GIS\TownCenterUpdate_2010.pdf")
del mxd

arcpy.mapping 地理处理模块可供需要实现 ArcMap 工作流自动化的任何人使用。尽管这看起来与编程非常相似,而且是由功能强大的 Python 编程语言驱动的,但您实际上并不必须是一位 GIS 软件开发人员也可以非常方便地调用 arcpy.mapping 脚本。arcpy.mapping 的目的是自动化那些繁琐的任务流,从而使您能够集中精力从事重要的创造性工作和分析工作。

arcpy.mapping 和典型脚本方案的目的

arcpy.mapping 模块的创建目的是自动化地图管理和输出(打印和导出)工作流。它所提供的函数将侧重于修改现有地图图层和布局元素,而不是作为完整的地图编译系统。交互式和高度可视化的 ArcMap 环境是创建新的地图文档以及创建地图图层和布局所强力推荐的。但是,如果使用了正确的方案,arcpy.mapping 的图层和布局元素修改功能则可用于动态创建地图产品。要成功完成这些工作流,需要您认真地制作地图以准备 arcpy.mapping 脚本中会调用的组成部分,以确保按照正确方式结合使用 arcpy.mapping 和 ArcMap 上确实可提供一个自动化的地图生产系统。

通过描述 arcpy.mapping 所执行的方案来了解这一模块的功能可能会更容易些。以下是 arcpy.mapping 脚本可执行的几种方案:

地理处理、arcpy.mapping 和扩展 ArcMap 应用程序

arcpy.mapping 模块是地理处理框架的一部分。因此,arcpy.mapping 脚本可使用 ArcGIS 提供的所有地理处理工具,而使用 arcpy.mapping 编写的所有脚本都可自行转换为地理处理脚本工具以在 ArcToolbox 和模型构建器中使用。

作为地理处理框架的一部分,arcpy.mapping 旨在用作批处理工具,而不仅仅是用作自定义 ArcMap 应用程序的框架。因为 arcpy.mapping 可用于针对地图创建您自己的处理系统,因此,公平地说,这是使用新工具扩展 ArcMap 的一种方式。但地理处理不允许完全自定义 ArcMap 用户界面,并且全套 ArcMap 对象和函数将无法通过 arcpy.mapping 进行访问。

ArcObjects SDK 可用于访问全套对象和函数。ArcObjects SDK 和地理处理是互补的;两者可同时使用,而不会相互影响。作为一个常规表达式,ArcObjects 可通过新的行为来扩展 ArcGIS,而地理处理则是专为自动执行任务而设计的。可使用 ArcObjects 执行诸如添加新的用户界面、向要素类添加自定义行为或创建特殊制图渲染器之类的操作。地理处理可在正常运行框架的限制范围内自动执行任务。

使用和部署脚本

可部署调用了 arcpy.mapping 的脚本,并可通过与任何地理处理脚本相同的方式对其进行执行。您所选择的运行脚本的方式将取决于您想要执行脚本的方式和时间:

有关 arcpy.mapping 类和函数的完整列表,请参阅以下内容:


7/10/2012