ArcGIS for Desktop

  • Документация
  • Стоимость
  • Поддержка

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

ArcGIS Online

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

ArcGIS for Desktop

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

ArcGIS for Server

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

ArcGIS for Developers

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

ArcGIS Solutions

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

ArcGIS Marketplace

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

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

Справка

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

Layer

  • Краткая информация
  • Обсуждение
  • Синтаксис
  • Свойства
  • Обзор метода
  • Методы
  • Пример кода

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

Обеспечивает доступ к свойствам и методам слоя. Он может ссылаться на слои в документе карты (.mxd) или в файле слоя (.lyr).

Обсуждение

Объект Layer предназначен для работы со слоями, которые находятся в документе карты (.mxd) или в файле слоя (.lyr). Объект layer обеспечивает доступ ко многим свойствам слоя, которые находятся в диалоговом окне Свойства слоя (Layer Properties) в ArcMap, а также предлагает методы для сохранения файлов слоев. Функция Layer, функция ListLayers и метод listLegendItemLayers объекта Legend обеспечивают ссылки на объект Layer.

Существует большое количество различных типов слоев, и не все они поддерживают одинаковый набор свойств. Например, слой объектов поддерживает определяющий запрос, тогда как растровый слой его не поддерживает, но каталог растров поддерживает. Вместо того чтобы работать с различными, отдельными объектами слоя из всех возможных типов слоев и комбинациями свойств, можно использовать метод supports, который помогает определить, какие типы слоев какие свойства поддерживают. Метод supports дает возможность проверить, поддерживает ли слой определенное свойство, прежде чем пытаться получить или задать его значение, что уменьшает необходимость поиска ошибок.

В документе карты используются три категории слоев: векторные слои, составные слои и растровые слои. Свойства isFeatureLayer, isGroupLayer и isRasterLayer позволяют определить или изолировать большинство типов слоев, но не все. Есть несколько специализированных слоев и наборов данных, которые не входят в вышеуказанные категории: подклассы аннотаций, объекты-размеры, наборы сетевых данных, наборы данных terrain, наборы данных топологии и т.д. В этих случаях, необходимо проверить другие свойства и изолировать интересующий вас слой, прежде чем начинать работу с ним.

Не ко всем свойствам слоя можно получить доступ с помощью объекта Layer. Существует большое количество свойств в диалоговом окне Свойства слоя (Layer Properties) в ArcMap, которые не используются в среде скриптов arcpy (например, свойства отображения, псевдонимы полей, символы выделения и т.д.). Функция UpdateLayer позволяет заменить все свойства слоя, доступные через диалоговое окно Свойства слоя в ArcMap с помощью файла слоя (.lyr), который содержит соответствующие настройки.

Составные слои и другие подслои (например, классы аннотаций) обрабатываются как обычные слои. Функция ListLayers возвращает индексные значения, которые генерируются сверху вниз согласно расположению в таблице содержания или в файле слоя (.lyr). То же самое происходит, если составной слой находится внутри другого составного слоя. Например, документ карты с одним составным слоем, который содержит три подслоя, вернет список из четырех имен слоев, составного слоя и трех подслоев, входящих в составной. Есть два способа определения составного слоя. Можно проверить, поддерживает ли слой свойство isGroupLayer. Или, можно оценить свойство longName. Значение longName слоя будет содержать имя составного слоя, помимо имени слоя. Например, слой Layer1 в составном слое Group1 будет иметь значение longName, равное Group1\Layer1. Если значение name равно значению longName, слой не является составным или не входит в составной.

Некоторые слои документа карты или файла слоя могут иметь защиту паролем, поскольку имя пользователя и пароль не хранятся вместе с файлом слоя или документом карты. Документы карты, содержащие такие слои, требуют ввода пароля при открытии. В среде скриптов arcpy.mapping, по умолчанию, эти диалоговые окна не отображаются, но это означает, что слои будут рассматриваться как поврежденные источники данных. Другими словами, защищенные слои не будут отображаться в выходных данных. Если необходимо, чтобы эти слои отображались правильно, можно использовать несколько опций. Сначала, сохраните имя пользователя и пароль вместе со слоем. Затем, функция геообработки CreateArcSDEConnectionFile позволит создать файл подключения, который будет находиться в памяти. Если эта функция выполнена до открытия документа карты (.mxd) с помощью функции MapDocument или файла слоя с помощью Layer, слои SDE будут отображаться правильно. На данный момент, другого способа для защищенных веб-сервисов нет.

Переменная, которая ссылается на файл слоя на диске, включит блокировку этого файла (.lyr). Рекомендуется удалять ссылку на объект, используя команду Python del в конце скрипта или в выражении Python try/except.

Изменение источника данных слоя – это общее требование. Если два метода объекта Layer, которые помогают это сделать. Метод findAndReplaceWorkspacePath предназначен для замены части или всего пути рабочей области слоя. Метод replaceDataSource позволяет изменить рабочую область слоя и набор данных источника. Более подробное обсуждение, информация о параметрах, сценарии и примеры кодов находятся в разделе справки Обновление и установление источников данных с помощью arcpy.mapping.

В зависимости от типа символов, символы слоя можно изменить. Имеется ограниченное число типов символов, для которых доступны свойства и методы. Рекомендуется сначала проверить свойство слоя symbologyType. Если возвращается значение OTHER, символы слоя изменить нельзя. Если возвращается другое значение, не OTHER, свойство слоя symbology возвращает один из следующих классов символов, каждый со своим собственным уникальным набором методов и свойств: GraduatedColorsSymbology, GraduatedSymbolsSymbology, RasterClassifiedSymbology и UniqueValuesSymbology.

Над временными слоями могут выполняться операции управления временем. Не все типы слоев поддерживают свойство времени. Поэтому, рекомендуется сначала проверить, поддерживает ли слой работу со временем, используя метод supports. Если слой поддерживает время, доступ к свойствам времени можно получить из класса LayerTime.

Синтаксис

 Layer (lyr_file_path)
ПараметрОбъяснениеТип данных
lyr_file_path

Строка, включающая полный путь и имя существующего файла слоя (.lyr).

String

Свойства

СвойствоОбъяснениеТип данных
brightness
(чтение и запись)

Дает возможность получать или задавать значение яркости. Нормальная яркость по умолчанию – 0%. Введите значение от +100% до -100%. Введите знак "плюс" или "минус" слева от значения, чтобы определить положительное или отрицательное значение. Не все слои поддерживают свойство brightness (например, составные слои и слои объектов), поэтому рекомендуется проверять это заранее с помощью метода supports.

Integer
contrast
(чтение и запись)

Дает возможность получать или задавать значение контраста. По умолчанию, нейтральный контраст – 0%. Введите значение от +100% до -100%. Введите знак "плюс" или "минус" слева от значения, чтобы определить положительное или отрицательное значение. Не все слои поддерживают свойство contrast (например, слои аннотаций или слои земельных участков), поэтому рекомендуется проверять это заранее с помощью метода supports.

Integer
credits
(чтение и запись)

Дает возможность получать или задавать информацию об авторах слоя и правовую информацию.

String
datasetName
(только чтение)

Возвращает имя набора данных слоя, так как оно отображается в рабочей области, а не в Таблице содержания. Не все слои поддерживают свойство datasetName (например, веб-сервисы), поэтому рекомендуется проверять это заранее с помощью метода supports.

String
dataSource
(только чтение)

Возвращает полный путь к источнику данных слоя. Содержит комбинацию свойств workspacePath и datasetName. Не все слои поддерживают свойство dataSource (например, классы аннотаций и веб-сервисы), поэтому рекомендуется проверять это заранее с помощью метода supports.

String
definitionQuery
(чтение и запись)

Дает возможность получать или задавать определяющий запрос слоя. Не все слои поддерживают свойство definitionQuery (например, растровые и составные слои), поэтому рекомендуется проверять это заранее с помощью метода supports.

String
description
(чтение и запись)

Дает возможность получать или задавать описательную информацию слоя. Не все слои поддерживают свойство description (например, слои топологии), поэтому рекомендуется проверять это заранее с помощью метода supports.

String
isBroken
(только чтение)

Возвращает True, если источник данных слоя поврежден.

Boolean
isFeatureLayer
(только чтение)

Возвращает True, если слой является векторным.

Boolean
isGroupLayer
(только чтение)

Возвращает True, если слой является составным.

Boolean
isNetworkAnalystLayer
(только чтение)

Возвращает значение True, если слой представляет собой слой типа ArcGIS Network Analyst.

Boolean
isRasterizingLayer
(только чтение)

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

Boolean
isRasterLayer
(только чтение)

Возвращает True, если слой является растровым.

Boolean
isServiceLayer
(только чтение)

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

Boolean
labelClasses
(чтение и запись)

Обеспечивает доступ к свойствам класса надписей слоя, возвращая список объектов LabelClass. Отдельные свойства объекта LabelClass могут считываться и/или меняться и снова записываться в слой. Не все слои поддерживают свойство labelClasses (например, растровые слои и слои аннотаций), поэтому рекомендуется проверять это заранее с помощью метода supports.

LabelClass
longName
(только чтение)

Это свойство помогает при определении принадлежности слоя к составному слою. Если слой не входит в составной, полное имя будет соответствовать имени слоя. Если слой входит в составной, полное имя будет содержать и имя составного слоя. Например, имя слоя, входящего в составной слой внутри другого составного слоя, может выглядеть примерно так Group1\Group2\LayerName. Это свойство поддерживают все типы слоев.

String
maxScale
(чтение и запись)

Дает возможность получать или задавать границу максимального масштаба слоя.

Double
minScale
(чтение и запись)

Дает возможность получать или задавать границу минимального масштаба слоя.

Double
name
(чтение и запись)

Дает возможность задавать или получать имя слоя, которое отображается в таблице содержания в ArcMap. Можно использовать пробелы. Это свойство поддерживают все типы слоев.

String
serviceProperties
(только чтение)

Предоставляет доступ к информации о подключении для слоев ArcSDE и веб-сервисов. Возвращаемый результат является парой ключевых значений словаря. Имеется два различных словаря, которые возвращаются в зависимости от типа слоя. Первый – для подключений ArcSDE, второй – для всех типов слоев веб-сервисов. Словарь веб-сервисов содержит ключи, которые работают со всеми типами слоев сервисов, а также включает отдельные ключи, работающие только в определенных типах веб-сервисов (например, WMS имеет ключ WMSTitle). Перед определением специфических ключей, можно проверить ключ ServiceType с помощью скрипта, или использовать метод get, который позволяет пропускать недоступные ключи. Не все слои поддерживают свойство serviceProperties (например, слои, не относящиеся к веб-сервисам или сервисам ArcSDE), поэтому рекомендуется проверять это заранее с помощью метода supports.

Ключи для словаря ArcSDE

  • ServiceType —Свойство, отображающее тип сервиса. Для ArcSDE это будут только слои типа SDE.
  • Сервер —Имя или IP-адрес компьютера, где установлена база геоданных ArcSDE.
  • Сервис —Имя или номер порта процесса, работающего на сервере ArcSDE.
  • База данных —Имя корпоративной РСУБД. Не требуется при использовании Oracle.
  • Имя пользователя —Учетная запись пользователя. При аутентификации средствами операционной системы остается пустым.
  • AuthenticationMode —Аутентификация средствами операционной системы или базы геоданных.
  • Version —Версия базы геоданных, к которой вы подключаетесь.

Ключи для словаря веб-сервиса

  • ServiceType —Свойство, отображающее тип сервиса. Они включают ImageServer, IMS, MapServer, TiledInternetLayer, WMS и WCS.
  • URL —Свойство, отображающее URL сервиса. Если подключение к ArcGIS for Server осуществляется по локальной сети (LAN), значение будет пустым.
  • Сервер —Свойство, отображающее имя сервера. Если подключение к ArcGIS for Server осуществляется через Интернет (HTTP), значение будет пустым.
  • Имя пользователя —Свойство, отображающее имя пользователя, используемое для доступа к защищенному сервису. Если сервис не защищен паролем, это свойство равно нулю.
  • ServiceName —Только слои сервиса IMS. Свойство отображает имя сервиса IMS.
  • WMSName —Только слои сервиса WMS. Свойство отображает текстовую строку для сервиса WMS, использующуюся для коммуникации между компьютерами.
  • WMSTitle —Только слои сервиса WMS. Свойство отображает строку заголовка описания сервиса WMS.
  • Name —Только слои сервиса WMS. Свойство отображает текстовую строку для слоя WMS, использующуюся для коммуникации между компьютерами.
  • Title —Только слои сервиса WMS. Свойство отображает строку заголовка описания слоя WMS.
Dictionary
showLabels
(чтение и запись)

Управляет отображением надписей слоя. Если задано True, надписи отображаются; если задано False, надписи не отображаются. Не все слои поддерживают свойство showLabels (например, растровые слои и слои аннотаций), поэтому рекомендуется проверять это заранее с помощью метода supports. Типы слоев, которые поддерживают свойство showLabels также поддерживают свойство labelClasses.

Boolean
symbology
(только чтение)

Возвращает ссылку на класс символов слоя. У каждого поддерживаемого класса символов слоя есть собственный уникальный набор свойств. Рекомендуется сначала определить symbologyType слоя, прежде чем менять свойства класса символов.

Object
symbologyType
(только чтение)

Возвращает строку, которая отображает тип класса символов слоя. Не все типы классов символов поддерживаются; если класс не поддерживается, возвращается ключевое слово OTHER. Список возможных значений следующий:

  • GRADUATED_COLORS —Класс GraduatedColorsSymbology.
  • GRADUATED_SYMBOLS —Класс GraduatedSymbolsSymbology.
  • OTHER —Строка, которая обозначает неподдерживаемый класс символов слоя.
  • UNIQUE_VALUES —Класс UniqueValuesSymbology.
  • RASTER_CLASSIFIED —Класс RasterClassifiedSymbology для растровых слоев.
Object
time
(только чтение)

Возвращает класс LayerTime, который обеспечивает доступ к свойствам времени временных слоев.

Object
transparency
(чтение и запись)

Дает возможность получать или задавать значение прозрачности. Это позволяет видеть нижние слои сквозь верхний. Введите 0, если не хотите использовать прозрачность слоя. Значение прозрачности более 90 процентов обычно приводит к тому, что слой не отображается совсем. Не все слои поддерживают свойство transparency (например, слои земельных участков и подслои веб-сервисов), поэтому рекомендуется проверять это заранее с помощью метода supports.

Integer
visible
(чтение и запись)

Управляет отображением слоя. Действует так же, как и отметка рядом с именем слоя в таблице содержания ArcMap. Если задано True, слой отображается; если задано False, слой не отображается. Не все слои поддерживают свойство visible (например, запрещенные слои веб-сервиса), поэтому рекомендуется проверять это заранее с помощью метода supports.

Boolean
workspacePath
(только чтение)

Возвращает путь к рабочей области слоя или к файлу подключения. Не все слои поддерживают свойство workspacePath (например, веб-сервисы), поэтому рекомендуется проверять это заранее с помощью метода supports.

String

Обзор метода

МетодОбъяснение
findAndReplaceWorkspacePath (find_workspace_path, replace_workspace_path, {validate})

Находит и заменяет путь к рабочей области слоя новым путем.

getExtent ({symbolized_extent})

Возвращает геометрический или символьный экстент слоя.

getSelectedExtent ({symbolized_extent})

Возвращает геометрический или символьный экстент выбранных объектов.

getSelectionSet ()

Возвращает выборку слоя в виде набора идентификаторов объектов Python.

replaceDataSource (workspace_path, workspace_type, {dataset_name}, {validate})

Заменяет источник данных для слоя документа карты (.mxd) или файла слоя (.lyr). Он также предоставляет вам возможность переключать типы рабочей области (т.е. заменяет источник данных файловой базы геоданных источником данных SDE).

save ()

Сохраняет файл слоя (.lyr).

saveACopy (file_name, {version})

Сохраняет файл слоя (.lyr) с другим именем файла и, если нужно, в более ранней версии.

setSelectionSet (method, oidList)

Задает выборку слоя в виде набора идентификаторов объектов Python.

supports (layer_property)

Не все слои поддерживают одинаковый набор свойств. С помощью свойства supports можно проверить, какие свойства поддерживает слой.

updateLayerFromJSON (json_layer_definition)

Обновляет слой из строки JSON.

Методы

findAndReplaceWorkspacePath (find_workspace_path, replace_workspace_path, {validate})
ПараметрОбъяснениеТип данных
find_workspace_path

Строка, содержащая путь к рабочей области или файлу подключения, который вы хотите найти. Если передана пустая строка, все пути рабочих областей будут заменены, при этом параметр replace_workspace_path будет зависеть от значения параметра the проверить.

String
replace_workspace_path

Строка, в которой представлен путь рабочей области или файл подключения, который необходимо заменить.

String
validate

Если задано значение Истина (True), рабочая область обновляется, только если значением workspace_path является существующая рабочая область. Если значение недопустимо, рабочая область не заменяется. Если задано значение Ложь (False), метод задает рабочую область как replace_workspace_path независимо от ее наличия соответствий. В этом случае, если соответствий нет, это означает, что источник данных слоя поврежден.

(Значение по умолчанию — True)

Boolean

Более подробное описание, сведения о параметрах, сценарии и примеры кода см. в разделе справки Обновление и фиксирование источников данных с помощью модуля arcpy.mapping.

getExtent ({symbolized_extent})
ПараметрОбъяснениеТип данных
symbolized_extent

При настройке Истина (True) возвращается символьный экстент; в противном случае возвращается геометрический экстент. Символьный экстент охватывает ту область, которую покрывают символы, так что он не выходит за границы фрейма данных.

(Значение по умолчанию — True)

Boolean

Возвращено значение

Тип данныхОбъяснение
Extent

Метод getExtent отдает предпочтение определяющему запросу слоя, так что, если запрашивается поднабор объектов, getExtent вернет экстент только этим объектам.

Символьный экстент охватывает при построении прямоугольника экстента область символа объекта. Возвращение символьного экстента более всего подходит для картографических результатов, так как в этом случае символы не будут обрезаны по ребрам фрейма данных. Геометрический экстент наилучшим образом подходит для анализа.

getSelectedExtent ({symbolized_extent})
ПараметрОбъяснениеТип данных
symbolized_extent

При настройке Истина (True) возвращается символьный экстент; в противном случае возвращается геометрический экстент. Символьный экстент охватывает ту область, которую покрывают символы, так что он не выходит за границы фрейма данных.

(Значение по умолчанию — True)

Boolean

Возвращено значение

Тип данныхОбъяснение
Extent

Символьный экстент охватывает при построении прямоугольника экстента область символа объекта. Возвращение символьного экстента более всего подходит для картографических результатов, так как в этом случае символы не будут обрезаны по ребрам фрейма данных. Геометрический экстент наилучшим образом подходит для анализа.

getSelectionSet ()

Это простейший способ получения текущей выборки слоя.

replaceDataSource (workspace_path, workspace_type, {dataset_name}, {validate})
ПараметрОбъяснениеТип данных
workspace_path

Строка, которая содержит путь рабочей области к новым данным или файлу подключения.

String
workspace_type

Ключевое слово, представляющее тип рабочей области новых данных.

  • 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
String
dataset_name

Строка, представляющая имя набора данных в том виде, в котором оно отображается в новой рабочей области (не имя слоя в таблице содержания). Если параметр dataset_name не указан, метод replaceDataSource попытается заменить набор данных, найдя таблицу с таким же именем, что и текущего набора данных слоя.

String
validate

Если задано значение True, рабочая область обновляется, только если значением workspace_path является допустимая рабочая область. Если значение недопустимо, рабочая область не заменяется. Если задано значение False, метод задает источник как workspace_path независимо от допустимого соответствия. В этом случае, если соответствий нет, источник данных поврежден.

(Значение по умолчанию — True)

Boolean

Более подробное описание, сведения о параметрах, сценарии и примеры кода см. в разделе справки Обновление и фиксирование источников данных с помощью модуля arcpy.mapping.

save ()

Существует небольшое различие между файлом слоя (.lyr) и слоем карты (слоем в документе карты). Метод save работает, только когда переменная ссылается на файл слоя, и не работает со слоем карты. При загрузке слоя из файла слоя имя этого файла запоминается и используется в дальнейшем при вызове метода save. В случае обращения к слою карты имя файла изначально не задано, поэтому вместо данного метода необходимо будет использовать метод saveACopy.

saveACopy (file_name, {version})
ПараметрОбъяснениеТип данных
file_name

Строка, которая включает местоположение и имя выходного файла слоя (.lyr).

String
version

Строка, задающая номер выходной версии. Значение по умолчанию будет использовать текущую версию.

  • 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)

String

Дает возможность сохранить файл слоя (.lyr) с другим именем файла и, если нужно, в более ранней версии. Свойства, которые не поддерживаются в более ранних версиях программного обеспечения, будут удалены из вновь сохраненного слоя.

setSelectionSet (method, oidList)
ПараметрОбъяснениеТип данных
method

Строка, задающая используемый метод выборки.

  • NEW —Создает новую выборку объектов из oidList.
  • DIFFERENCE —Выбирает объекты, не входящие в текущую выборку, но находящиеся в oidList.
  • INTERSECT —Выбирает объекты, входящие в текущую выборку и в oidList.
  • SYMDIFFERENCE —Выбирает объекты, входящие либо в текущую выборку, либо в oidList, но не в оба списка одновременно.
  • UNION —Выбирает все объекты, входящие как в текущую выборку, так и в oidList.

(Значение по умолчанию — None)

String
oidList
[oidList,...]

Набор идентификаторов Python для работы с соответствующим способом выборки объектов.

List

Это простейший способ управления текущей выборкой слоя. Чтобы очистить выборку, воспользуйтесь методом выборки NEW с пустым набором объектов. Наборы и списки Python можно применять для oidList, но наборы возвращаются методом getSelectionSet объекта Layer.

supports (layer_property)
ПараметрОбъяснениеТип данных
layer_property

Имя свойства слоя, которое будет проверено.

  • BRIGHTNESS —Значение яркости растрового слоя
  • CONTRAST —Значение контраста растрового слоя
  • DATASETNAME —Имя набора данных слоев, как оно отображается в рабочей области
  • DATASOURCE —Путь к файлу слоя или файл подключения
  • DEFINITIONQUERY —Строка определяющего запроса слоя
  • DESCRIPTION —Строка описания слоя
  • LABELCLASSES —Список классов надписей слоя.
  • LONGNAME —Путь к слою, включая один или несколько составных слоев, в которые он может быть вложен
  • NAME —Имя слоя
  • SERVICEPROPERTIES —Информация о подключении для слоев ArcSDE и веб-сервисов.
  • SHOWLABELS —Булево значение, указывающее, включены ли надписи в слое
  • SYMBOLOGY —Класс символов слоя
  • SYMBOLOGYTYPE —Тип класса символов слоя
  • TIME —Временные свойства слоя
  • TRANSPARENCY —Значение прозрачности слоя
  • VISIBLE —Булево значение, указывающее, включен ли слой в ТС
  • WORKSPACEPATH —Рабочая область слоя или путь к файлу подключения.

(Значение по умолчанию — name)

String

Возвращено значение

Тип данныхОбъяснение
Boolean

Существует много типов слоев, и не все они поддерживают одинаковый набор свойств. Например, слой объектов поддерживает определяющий запрос, тогда как растровый слой его не поддерживает, но каталог растров поддерживает. Вместо того, чтобы создавать отдельные объекты слоя для всех возможных типов слоев и комбинаций свойств, можно использовать метод support, который позволяет определить, какие свойства поддерживает тот или иной тип слоя. Метод support дает возможность проверить, поддерживается ли свойство, чтобы не пытаться получить или задать его значение в типе слоя, который его не поддерживает. Свойство supports возвращает истина, если слой поддерживает данное свойство.

updateLayerFromJSON (json_layer_definition)
ПараметрОбъяснениеТип данных
json_layer_definition

Определение слоя в формате JavaScript Object Notation (JSON). Для получения подробной информации см. раздел Спецификации ExportWebMap JSON. Интерфейсы Web API ArcGIS (JavaScript, Flex и Silverlight) позволяют разработчикам легко получить эту строку JSON из веб-приложения. Определение слоя – это поднабор webmap_json, используемый в функции ConvertWebMapToMapDocument. Вам не нужно создавать веб-карту JSON; это сделают интерфейсы API. Однако вам необходимо извлечь определение слоя из полного webmap_json.

String

Эта функция предназначена для использования в сервисе геообработки, где функция ConvertWebMapToMapDocument применяется в приложениях для печати веб-карт, поддерживающих изменение способа отображения (или других свойств) динамических слоев веб-сервисов. Если ваши сервисы геообработки заменяют слои сервиса промежуточным векторными слоями после запуска ConvertWebMapToMapDocument, updateLayerFromJSON применит метод отображения (или другие свойства слоя), как указано в webmap_json для соответствующих промежуточных векторных слоев в шаблоне документа карты. Дополнительная информация и пример кода находятся в разделе ConvertWebMapToMapDocument.

Пример кода

Layer пример 1

Следующий скрипт ссылается на файл слоя (.lyr), находит все слои, называющиеся Highways, включает подписи и сохраняет результаты в новый файл слоя.

import arcpy
lyrFile = arcpy.mapping.Layer(r"C:\Project\Data\Streets.lyr")
for lyr in arcpy.mapping.ListLayers(lyrFile):
    if lyr.name.lower() == "highways":
        lyr.showLabels = True
        lyr.saveACopy(r"C:\Project\Data\StreetsWithLabels.lyr")
del lyrFile

#Or with one less line using a wild card:

import arcpy
lyrFile = arcpy.mapping.Layer(r"C:\Project\Data\Streets.lyr")
for lyr in arcpy.mapping.ListLayers(lyrFile, "Highways"):
    lyr.showLabels = True
    lyr.saveACopy(r"C:\Project\Data\StreetsWithLabels.lyr")
del lyrFile
Layer пример 2

Следующий скрипт позволяет правильно отобразить защищенные слои, с помощью создания подключения 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
Layer пример 3

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

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")

#Report service properties for layers in a map that support SERVICEPROPERTIES
mxd = arcpy.mapping.MapDocument(r"C:\Project\ServerData.mxd")
for lyr in arcpy.mapping.ListLayers(mxd):
    if lyr.supports("SERVICEPROPERTIES"):
        servProp = lyr.serviceProperties
        print "Layer name:" + lyr.name
        print "-----------------------------------------------------"
        if lyr.serviceProperties["ServiceType"] != "SDE":
            print "Service Type: " + servProp.get('ServiceType', 'N/A')
            print "    URL:         " + servProp.get('URL', 'N/A')
            print "    Connection:  " + servProp.get('Connection', 'N/A')
            print "    Server:      " + servProp.get('Server', 'N/A')
            print "    Cache:       " + str(servProp.get('Cache', 'N/A'))
            print "    User Name:   " + servProp.get('UserName', 'N/A')
            print "    Password:    " + servProp.get('Password', 'N/A')
            print ""
        else:
            print "Service Type: " + servProp.get('ServiceType', 'N/A')
            print "    Database:       " + servProp.get('Database', 'N/A')
            print "    Server:         " + servProp.get('Server', 'N/A')
            print "    Service:        " + servProp.get('Service', 'N/A')
            print "    Version:        " + servProp.get('Version', 'N/A')
            print "    User name:      " + servProp.get('UserName', 'N/A')
            print "    Authentication: " + servProp.get('AuthenticationMode', 'N/A')
            print ""       
del mxd
Layer пример 4

Следующий скрипт изменяет символы для слоя в документе карты. Сначала он обновляет символы слоя, используя файл слоя на диске, с помощью функции UpdateLayer. Файл слоя содержит пользовательскую цветовую схему, которая применяется к слою. Затем скрипт проверяет, использует ли слой символы градуированных цветов. Наконец, скрипт меняет число свойств класса символов GraduatedColors и экспортирует полученный результат в PDF.

import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "Census")[0]
lyr = arcpy.mapping.ListLayers(mxd, "StatePopulation", df)[0]
lyrFile = arcpy.mapping.Layer(r"C:\Project\LYRs\Population.lyr")
arcpy.mapping.UpdateLayer(df, lyr, lyrFile, True)
if lyr.symbologyType == "GRADUATED_COLORS":
  lyr.symbology.valueField = "POP2000"
  lyr.symbology.numClasses = 4
  lyr.symbology.classBreakValues = [250000, 999999, 4999999, 9999999, 35000000]
  lyr.symbology.classBreakLabels = ["250,000 to 999,999", "1,000,000 to 4,999,999", 
                                    "5,000,000 to 9,999,999", "10,000,000 to 35,000,000"]
arcpy.mapping.ExportToPDF(mxd, r"C:\Project\Output\StatePopulation.pdf")
del mxd, lyrFile
Layer пример 5

Следующий скрипт проверяет, поддерживает ли слой значения времени и заданы ли свойства времени. Затем он использует информацию о времени (начальное и конечное время) для вычисления временного экстента слоя с поддержкой времени.

import arcpy, datetime
lyr = arcpy.mapping.Layer(r'C:\Project\Data\Time\TemperatureWithTime.lyr')
if lyr.supports("TIME"):
    lyrTime = lyr.time
    if lyr.time.isTimeEnabled:
        startTime = lyrTime.startTime
        endTime = lyrTime.endTime
        timeDelta = endTime - startTime
        print "Start Time: " + str(startTime)
        print "End Time: " + str(endTime)
        print "Time Extent: " + str(timeDelta)
    else:
        print "No time properties have been set on the layer"
else:
    print "Time is not supported on this layer"
Отзыв по этому разделу?

ArcGIS for Desktop

  • На главную
  • Документация
  • Стоимость
  • Поддержка

ArcGIS Platform

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

Об Esri

  • О нас
  • Карьера
  • Блог сотрудников
  • Конференция пользователей
  • Саммит разработчиков
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | Конфиденциальность | Правовая информация