Краткая информация
Позволяет передвинуть слой в нужное местоположение во фрейме данных или групповом слое документа карты (.mxd).
Обсуждение
Метод MoveLayer позволяет перемещать слой в пределах фрейма данных, а также в пределах групповых слоев в одном и том же фрейме данных. Слои moved_layer и reference_layer должны находиться в одном и том же фрейме данных. Нельзя переместить слой из одного фрейма данных в другой, даже в пределах одного документа карты. В этом случае можно использовать функции Add_Layer, Insert_Layer и RemoveLayer.
Синтаксис
MoveLayer (data_frame, reference_layer, move_layer, {insert_position})
Параметр | Объяснение | Тип данных |
data_frame | Ссылка на объект Фрейм данных (DataFrame), в пределах которого будет перемещаться слой. | DataFrame |
reference_layer | Ссылка на объект Слой (Layer), представляющий реально существующий слой. Он определяет положение, относительно которого будет перемещаться слой. | Layer |
move_layer | Ссылка на объект Слой (Layer), представляющий слой, выбираемый для перемещения. | Layer |
insert_position | Константа, определяющая размещение перемещаемого слоя по отношению к слою ссылки.
(Значение по умолчанию — BEFORE) | String |
Пример кода
MoveLayer, пример:
Следующий скрипт перемещает слой Реки (Rivers) и размещает его над слоем ссылки Озера (Lakes). Оба слоя находятся во фрейме данных Карты областей (County Maps).
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "County Maps")[0]
for lyr in arcpy.mapping.ListLayers(mxd, "", df):
if lyr.name.lower() == "rivers":
moveLayer = lyr
if lyr.name.lower() == "lakes":
refLayer = lyr
arcpy.mapping.MoveLayer(df, refLayer, moveLayer, "BEFORE")
mxd.saveACopy(r"C:\Project\Project2.mxd")
del mxd