MoveLayer (arcpy.mapping)

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

Позволяет передвинуть слой в нужное местоположение во фрейме данных или групповом слое документа карты (.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

Константа, определяющая размещение перемещаемого слоя по отношению к слою ссылки.

  • AFTERВставляет новый слой после слоя ссылки или под ним
  • BEFOREВставляет новый слой перед слоем ссылки или над ним

(Значение по умолчанию — 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
5/10/2014