ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

MapDocument

  • 描述
  • 讨论
  • 语法
  • 代码示例

描述

用于访问地图文档 (.mxd) 的属性和方法。大多数地图脚本操作都需要引用此对象。

讨论

有关更详细的说明,请参阅 MapDocument 类帮助。

语法

MapDocument (mxd_path)
参数说明数据类型
mxd_path

包含现有地图文档 (.mxd) 的完整系统路径和文件名的字符串或包含关键字 CURRENT 的字符串。

String

返回值

数据类型说明
MapDocument

MapDocument 对象用于访问地图文档属性和方法。大多数地图脚本操作都需要引用此对象。

代码示例

MapDocument 示例 1

以下脚本为地图文档中的每个数据框分别创建 MXD 文件。输出地图文档将采用数据查看的模式保存,这样,在打开每个地图文档时,相应数据框将成为活动数据框。此脚本也设置了各输出地图文档的标题属性。由于此脚本使用地图文档的系统路径,它可以在 ArcMap 应用程序外运行。注意:Python 字符串不能以反斜线结尾,即使字符串前面是 r。必须使用双反斜线。在文件夹路径中追加动态文件名时,此点尤为重要。

import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
for df in arcpy.mapping.ListDataFrames(mxd):
    mxd.activeView = df.name
    mxd.title = df.name
    mxd.saveACopy(r"C:\Project\Output\\" + df.name + ".mxd")
del mxd
MapDocument 示例 2

以下脚本演示了如何在 Python 窗口中使用 CURRENT 关键字。此示例将更新首个数据框的名称并刷新内容列表,这样,可以在应用程序中看到更新。将以下代码粘贴到 Python 窗口中的新 ArcMap 文档中。

mxd = arcpy.mapping.MapDocument("CURRENT")
arcpy.mapping.ListDataFrames(mxd)[0].name = "New Data Frame Name"
arcpy.RefreshTOC()
del mxd
粘贴到交互式窗口中时,将如下所示。代码块左侧的三个点表示这些行是会同时执行的代码块。必须按 Enter 键执行这些行。

>>> mxd = arcpy.mapping.MapDocument("CURRENT")
... arcpy.mapping.ListDataFrames(mxd)[0].name = "New Data Frame Name"
... arcpy.RefreshTOC()
... del mxd
...
MapDocument 示例 3

以下是演示如何在 Python 窗口中使用 CURRENT 关键字的另一简单脚本。各图层名称都将在 Python 窗口中输出。如果缩进正确,也可能发生循环。与上例相似,将以下代码粘贴到 Python 窗口中。

mxd = arcpy.mapping.MapDocument("CURRENT")
for lyr in arcpy.mapping.ListLayers(mxd):
    print lyr.name
del mxd
粘贴到交互式窗口中时,将如下所示。同样,按 Enter 键执行这些行。

>>> mxd = arcpy.mapping.MapDocument("CURRENT")
... for lyr in arcpy.mapping.ListLayers(mxd):
...     print lyr.name
... del mxd
...
MapDocument 示例 4

以下脚本将在打开需要输入密码的地图文档前,通过在内存中创建 SDE 连接确保适当地渲染受保护图层。此脚本仅定义了连接信息,然后将地图文档导出为 PDF 文件。最好在关闭脚本前从内存中删除此引用。

import arcpy, os
#Remove temporary connection file if it already exists
sdeFile = r"C:\Project\Output\TempSDEConnectionFile.sde"
if os.path.exists(sdeFile):
    os.remove(sdeFile)
#Create temporary connection file in memory
arcpy.CreateArcSDEConnectionFile_management(r"C:\Project\Output", "TempConnection", "myServerName", "5151", "myDatabase", "DATABASE_AUTH", "myUserName", "myPassword", "SAVE_USERNAME", "myUser.DEFAULT", "SAVE_VERSION")
#Export a map document to verify that secured layers are present
mxd = arcpy.mapping.MapDocument(r"C:\Project\SDEdata.mxd")
arcpy.mapping.ExportToPDF(mxd, r"C:\Project\output\SDEdata.pdf")
os.remove(sdeFile)
del mxd

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明