ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

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

ArcGIS Online

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

ArcGIS Desktop

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

ArcGIS Enterprise

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

ArcGIS Developers

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

ArcGIS Solutions

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

ArcGIS Marketplace

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

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

ArcMap

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

Layer

  • Сводка
  • Описание
  • Синтаксис
  • Свойства
  • Обзор метода
  • Методы
  • Пример кода

Сводка

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

Описание

Объект Layer предназначен для работы со слоями, которые находятся в документе карты (.mxd) или в файле слоя (.lyr). Объект layer обеспечивает доступ ко многим свойствам слоя, которые находятся в диалоговом окне Свойства слоя в 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, по умолчанию, эти диалоговые окна не отображаются, но это означает, что слои будут рассматриваться как поврежденные источники данных. Другими словами, защищенные слои не будут отображаться в выходных данных. Если необходимо, чтобы эти слои отображались правильно, можно использовать несколько опций. Сначала, сохраните имя пользователя и пароль вместе со слоем. Затем, функция геообработки CreateDatabaseConnection позволит создать файл подключения, который также сохранится в памяти. Если эта функция будет выполнена до открытия документа карты (.mxd) с помощью функции MapDocument или файла слоя с помощью функции Слой, то в этом случае появится отображение слоев базы геоданных. На данный момент, другого способа для защищенных веб-сервисов нет.

Переменная, которая ссылается на файл слоя на диске, включит блокировку этого файла (.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%. Введите знак плюс или минус слева от значения для указания, является ли она выше или ниже 0. Не все слои поддерживают свойство brightness (например, растровые и составные слои), поэтому рекомендуется проверять это заранее, используя метод supports.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.
  • Server —Имя или IP-адрес компьютера, где установлена база геоданных ArcSDE.
  • Service —Имя или номер порта процесса, работающего на сервере ArcSDE.
  • Database —Имя многопользовательской РСУБД. Не требуется при использовании Oracle.
  • UserName —Учетная запись пользователя. При аутентификации средствами операционной системы остается пустым.
  • AuthenticationMode —Аутентификация средствами операционной системы или базы геоданных.
  • Version —Версия базы геоданных, к которой вы подключаетесь.

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

  • ServiceType —Свойство, отображающее тип сервиса. Они включают ImageServer, IMS, MapServer, TiledInternetLayer, WMS и WCS.
  • URL —Свойство, отображающее URL сервиса. Если подключение к ArcGIS for Server осуществляется по локальной сети (LAN), значение будет пустым.
  • Server —Свойство, отображающее имя сервера. Если подключение к ArcGIS for Server осуществляется через Интернет (HTTP), значение будет пустым.
  • UserName —Свойство, отображающее имя пользователя, используемое для доступа к защищенному сервису. Если сервис не защищен паролем, это свойство равно нулю.
  • 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

A string that includes the location and name of the output layer (.lyr) file.

String
version

A string that sets the output version number. The default value will use the current version.

  • 10.8 —Version 10.8
  • 10.7 —Version 10.7
  • 10.6 —Version 10.6
  • 10.5 —Version 10.5
  • 10.4 —Version 10.4
  • 10.3 —Version 10.3
  • 10.1 —Version 10.1/10.2
  • 10.0 —Version 10.0
  • 9.3 —Version 9.3
  • 9.2 —Version 9.2
  • 9.0 —Version 9.0/9.1
  • 8.3 —Version 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

Следующий скрипт позволяет правильно отобразить защищенные слои посредством создания подключения баз геоданных в памяти перед открытием документа карты, для чего требуется использовать пароль. Этот скрипт просто задает информацию о подключении, затем экспортирует документ карты в 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

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

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 Desktop

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

ArcGIS

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

Об Esri

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