ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS for Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

MapDocument

  • Краткая информация
  • Описание
  • Синтаксис
  • Пример кода

Краткая информация

Обеспечивает доступ к свойствам и методам документа карты (.mxd). Ссылка на этот объект существенна для большинства операций создания скриптов для карты.

Описание

Подробнее об этом можно прочитать в справке к разделу Класс MapDocument (MapDocument Class).

Синтаксис

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

Следующий скрипт демонстрирует, как можно использовать ключевое слово CURRENT в окне Python. В этом примере мы обновим имя первого фрейма данных и таблицу содержания, так чтобы изменения можно было увидеть в приложении. Введите следующий код в окне Python в новом документе ArcMap.

mxd = arcpy.mapping.MapDocument("CURRENT")
arcpy.mapping.ListDataFrames(mxd)[0].name = "New Data Frame Name"
arcpy.RefreshTOC()
del mxd
При вставке в интерактивное окно, он выглядит так. Три точки слева от кода блокировки указывают на то, что линии представляют собой единый блок кода и выполняются все вместе. Нажмите клавишу Ввод, чтобы выполнить эти линии.

>>> mxd = arcpy.mapping.MapDocument("CURRENT")
... arcpy.mapping.ListDataFrames(mxd)[0].name = "New Data Frame Name"
... arcpy.RefreshTOC()
... del mxd
...
MapDocument, пример 3

Вы видите еще один простой скрипт, который демонстрирует использование ключевого слова CURRENT в окне Python. Имя каждого слоя будет выведено в окне Python. Циклы также допускаются при условии, что вы сохраняете правильный профиль. Введите следующий код в окне Python, как и в предыдущем примере.

mxd = arcpy.mapping.MapDocument("CURRENT")
for lyr in arcpy.mapping.ListLayers(mxd):
    print lyr.name
del mxd
При вставке в интерактивное окно, он выглядит так. Снова нажмите клавишу Ввод, чтобы выполнить линии.

>>> 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 Platform

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

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2019 Esri. | Конфиденциальность | Правовая информация