ArcGIS for Desktop

  • 文档
  • 合约
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

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

ArcGIS for Desktop

全面的专业性 GIS

ArcGIS for Server

面向企业的 GIS

ArcGIS for Developers

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

ArcGIS Solutions

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

ArcGIS Marketplace

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

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

帮助

  • 主页
  • 入门
  • 制图
  • 分析
  • 管理数据
  • 工具
  • 更多...

MapDocument

  • 摘要
  • 讨论
  • 语法
  • 代码实例

摘要

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

讨论

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

语法

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

A string that includes the full path and file name of an existing map document (.mxd) or a string that contains the keyword 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 关键字。此示例将会更新首个数据框的名称,并刷新内容列表,从而可在应用程序中看到更改。将以下代码粘贴到一个新 ArcMap 文档的 Python 窗口中。

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 for Desktop

  • 主页
  • 文档
  • 合约
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | 隐私政策 | 法律声明