Mapdocument - довідка, arcgis for desktop

коротка інформація

Обговорення

Об'єкт MapDocument є одним з перших об'єктів, на які посилається створюваний автоматизує карту скрипт, оскільки це необхідний параметр для багатьох функцій arcpy.mapping. Через використання об'єкта MapDocument ви можете ультимативно отримати доступ практично до всіх інших об'єктів всередині документа карти (наприклад, до фреймів даних, верствам, елементам компоновок сторінок). Об'єкт MapDocument забезпечує доступ до більшості властивостей документа карти через діалогове вікно Властивості документа карти (Map Document Properties) в ArcMap (Файл (File)> Властивості документа карти (Map Document Properties)). Даний об'єкт також містить методи для управління зразками документа карти і методами збереження документів карти, які можна знайти в меню Файл (File) ArcMap.

Другий спосіб - використання ключового слова CURRENT в якості вхідного параметра функції MapDocument. Цей метод працює тільки в додатку ArcMap, так як об'єкт MapDocument посилається на документ карти, завантажений в даний момент в додаток ArcMap. Використання CURRENT дуже корисно при швидкому тестуванні і вивченні можливостей скриптів і синтаксису команд у вікні Python. Можна приступити до вивчення синтаксису у вікні Python, а потім вставляти ці рядки коду в скрипти, які зберігаються на диск.

Інструменти скрипта, що використовують ключове слово CURRENT. повинні запускатися в ArcMap (з призначеного для користувача меню або вікна Каталог). Інструменти скриптів, які використовують CURRENT. працюватимуть неправильно при запуску з програми ArcCatalog. З цієї ж причини, якщо у інструменту є скрипт перевірки з посиланням на CURRENT. при спробі зміни скрипта перевірки в ArcCatalog може виникнути помилка. Обов'язково змініть код перевірки у вікні Каталогу ArcMap.

Щоб використовувати ключове слово CURRENT в інструменті-скрипті, необхідно відключити фонову обробку. При фонової обробки всі скрипти виконуються так, ніби автономні скрипти за межами програми ArcGIS, тому CURRENT не працюватиме з включеною фонової обробкою. Доступна нова опція для інструменту-скрипта, Завжди виконувати не в фоновому режимі (Always run in foreground). яка гарантує, що інструмент буде завжди працювати в активному режимі, навіть якщо включена фонова обробка.

Якщо написання скрипта використовується для модифікації відображення деяких елементів документа карти при використанні документа карти CURRENT (наприклад, зміна імені шару, екстента фрейму даних і т.п.), то карта може не оновлюватися автоматично при виконанні кожного рядка коду. Щоб оновити документ карти з відображенням змін, використовуйте або функцію RefreshActiveView. або функцію RefreshTOC. Дані функції будуть оновлювати відображення карти або макет сторінки, і таблицю змісту, відповідно. Функції поновлення необхідні тільки тоді, коли ви хочете бачити вашу програму оновленим. Функції arcpy.mapping export, save і printing будуть генерувати очікувані оновлені результати без використання даних функцій.

Деякі верстви документа карти або файлу шару можуть мати захист паролем, оскільки ім'я користувача та пароль не зберігається разом з файлом шару або документом карти. Документи карти, які містять такі шари, вимагають введення пароля при відкритті. У середовищі скриптів arcpy.mapping, за замовчуванням, ці діалогові вікна не відображаються, але це означає, що шари будуть розглядатися як такі, що пошкоджені джерела даних. Іншими словами, захищені шари не будуть відображатися в вихідних даних. Якщо необхідно, щоб ці шари відображалися правильно, можна використовувати кілька опцій. Перш за все, збережіть ім'я користувача і пароль разом із шаром. Потім, функція геообработки CreateArcSDEConnectionFile дозволить створити підключення, яке буде знаходитися в пам'яті. Якщо ця команда використовується до відкриття документа карти (.mxd) за допомогою функції MapDocument або файлу шару за допомогою Layer. шари SDE будуть відображатися правильно. На даний момент, іншого способу для захищених веб-сервісів немає.

Змінна, яка посилається на об'єкт MapDocument, включає блокування файлу документа карти. Рекомендується видаляти посилання на об'єкт MapDocument, використовуючи команду Python del в кінці скрипта або в вираженні Python try / except.

Зміна джерел даних в документі карти - це загальна вимога. Існують два методи для об'єкта MapDocument. які допомагають це зробити. Метод findAndReplaceWorkspacePaths призначений для заміни частини або всього шляху робочої області шару або таблиці. Метод replaceWorkspaces дозволяє змінити не тільки шлях, але також і тип робочої області. Більш докладний опис, відомості про параметри, сценарії і приклади коду див. Розділ довідки Оновлення та фіксування джерел даних за допомогою модуля arcpy.mapping.

Повертає об'єкт DataFrame. що містить активний в поточний момент фрейм даних документа карти (.mxd). Властивість activeDataFrame повертає відповідний фрейм даних, навіть якщо документ карти знаходиться в режимі виду компонування. Якщо ви хочете встановити активний фрейм даних, використовуйте властивість activeView.

(Читання і запис)

Забезпечує можливість установки або отримання активного виду документа карти - як виду даних, так і макет сторінки. Властивість працює з рядком, що містить ім'я активного фрейму даних або кодовим словом PAGE_LAYOUT.

Якщо значенням властивості activeView є PAGE_LAYOUT і документ карти зберігається, в наступний раз документ карти буде відкрито в режимі перегляду. Якщо для activeView встановлено ім'я фрейма даних і документ карти зберігається, в наступний раз документ карти буде відкрито в режимі виду даних, а активним буде конкретний фрейм даних.

(Читання і запис)

Рядок, що містить шукані шлях до робочої області або файлу підключення. Якщо передана порожній рядок, всі шляхи робочих областей будуть замінені, при цьому параметр new_workspace_path буде залежати від значення параметра validate.

Ключове слово, що представляє тип робочої області замінних старих даних. Якщо передана порожній рядок, можна перенаправити кілька робочих областей в одну робочу область.

  • ACCESS_WORKSPACE - Персональна база геоданих або робоча область Access
  • ARCINFO_WORKSPACE - Робоча область покриття ArcInfo
  • CAD_WORKSPACE -Робоча область файлу САПР
  • EXCEL_WORKSPACE -Робоча область файлу Excel
  • FILEGDB_WORKSPACE -Робоча область файлової бази геоданих
  • Немає стиснення (NONE) -Використовується для пропуску параметра
  • OLEDB_WORKSPACE -Робоча область бази даних OLE
  • PCCOVERAGE_WORKSPACE -Робоча область покриття PC ARC / INFO
  • RASTER_WORKSPACE -Робоча область растра
  • SDE_WORKSPACE -Робоча область бази геоданих SDE
  • SHAPEFILE_WORKSPACE -Робоча область шейп-файлу
  • TEXT_WORKSPACE -Робоча область текстового файлу
  • TIN_WORKSPACE -Робоча область TIN
  • VPF_WORKSPACE -Робоча область VPF

Рядок, в якій представлений новий шлях робочої області або файл підключення.

Строкове ключове слово, що представляє тип робочої області, який замінить old_workspace_type.

  • ACCESS_WORKSPACE - Персональна база геоданих або робоча область Access
  • ARCINFO_WORKSPACE - Робоча область покриття ArcInfo
  • CAD_WORKSPACE -Робоча область файлу САПР
  • EXCEL_WORKSPACE -Робоча область файлу Excel
  • FILEGDB_WORKSPACE -Робоча область файлової бази геоданих
  • OLEDB_WORKSPACE -Робоча область бази даних OLE
  • PCCOVERAGE_WORKSPACE -Робоча область покриття PC ARC / INFO
  • RASTER_WORKSPACE -Робоча область растра
  • SDE_WORKSPACE -Робоча область бази геоданих SDE
  • SHAPEFILE_WORKSPACE -Робоча область шейп-файлу
  • TEXT_WORKSPACE -Робоча область текстового файлу
  • TIN_WORKSPACE -Робоча область TIN
  • VPF_WORKSPACE -Робоча область VPF

Якщо задано значення True. робоча область оновлюється, тільки якщо значенням new_workspace_path є допустима робоча область. Якщо значення неприпустимо, робоча область і не замінюється. Якщо задано значення False. метод задає всі робочі області як new_workspace_path незалежно від її наявності відповідностей. В цьому випадку, якщо відповідностей немає, джерела даних пошкоджені.

(Значення за замовчуванням - True)

Більш докладний опис, відомості про параметри, сценарії і приклади коду див. Розділ довідки Оновлення та фіксування джерел даних за допомогою модуля arcpy.mapping.

  • 10.3 -Версія 10.3
  • 10.1 -Версія 10.1 / 10.2
  • 10.0 -Версія 10.0
  • 9.3 -Версія 9.3
  • 9.2 -Версія 9.2
  • 9.0 -Версія 9.0 / 9.1
  • 8.3 -Версія 8.3

(Значення за замовчуванням - None)

приклад коду

MapDocument, приклад 1
MapDocument, приклад 2

Наступний скрипт демонструє, як можна використовувати ключове слово CURRENT у вікні Python. У цьому прикладі ми оновимо ім'я першого фрейму даних і таблицю змісту, так щоб зміни можна було побачити в додатку. Введіть наступний код у вікні Python в новому документі ArcMap.

При вставці в інтерактивне вікно, він виглядає так. Три точки зліва від коду блокування вказують на те, що лінії являють собою єдиний блок коду і виконуються всі разом. Натисніть клавішу Enter, щоб виконати ці лінії.

MapDocument, приклад 3

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

При вставці в інтерактивне вікно, він виглядає так. Знову натисніть клавішу Enter, щоб виконати лінії.

MapDocument, приклад 4

Наступний скрипт дозволяє правильно відобразити захищені верстви, за допомогою створення підключення SDE в пам'яті перед відкриттям документа карти, для якого необхідно отримати пароль. Цей скрипт просто задає інформацію про підключення і експортує документ карти в файл PDF. Рекомендується видалити це посилання з пам'яті до закриття скрипта.