UpdateLayerTime (arcpy.mapping)
Резюме
Позволяет обновить временные свойства слоя в документе карты (.mxd), извлекая временные свойства из исходного слоя.
Обсуждение
Функция UpdateLayer позволяет только обновлять свойства символов слоя или обновлять ВСЕ свойства слоя, включая свойства времени.
Функция UpdateLayerTime позволяет обновлять только свойства времени для слоя, поэтому она не переопределяет других свойств слоя, которые не следует менять.
Объект source_layer содержит свойства времени, которые необходимо применить. Он может являться файлом слоя на диске или ссылкой на другой слой в документе карты.
Если необходимо обновить свойства слоя в файле слоя, необходимо сначала изменить свойства слоя в документе карты, затем сохранить изменения обратно в файл слоя. См. методы объекта слоя save или saveACopy и пример кода, приведенный ниже.
Синтаксис
Параметр | Объяснение | Тип данных |
data_frame |
Ссылка на объект Фрейм данных (DataFrame), содержащий обновляемый слой. | DataFrame |
update_layer |
Объект Layer, представляющий существующий слой, который будет обновлен. | Layer |
source_layer |
Ссылка на объект Слой, содержащий информацию, которая применяется к update_layer. | Layer |
Пример кода
В следующем скрипте обновляются свойства времени слоя с использованием файла слоя. Слой называется temperature и не поддерживает время. Свойства времени в файле слоя, поддерживающем время, будут применены к слою temperature.
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Temperature.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "World")[0]
lyr = arcpy.mapping.ListLayers(mxd, "temperature", df)[0]
lyrFile = arcpy.mapping.Layer(r"C:\Project\Data\Time\LayerWithTimeProperties.lyr")
arcpy.mapping.UpdateLayerTime(df, lyr, lyrFile)
# Save changes to a new MXD
mxd.saveACopy(r"C:\Project\Temperature2.mxd")
# Clean up variables
del mxd, df, lyr, lyrFile
Следующий скрипт аналогичен приведенному выше, однако он сохраняет изменения обратно в файл слоя.
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Temperature.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "World")[0]
lyr = arcpy.mapping.ListLayers(mxd, "temperature", df)[0]
lyrFile = arcpy.mapping.Layer(r"C:\Project\Data\Time\LayerWithTimeProperties.lyr") #orginally authored in ArcMap
arcpy.mapping.UpdateLayerTime(df, lyr, lyrFile)
# Save changes to a new Layer file
lyr.saveACopy(r"C:\Project\TemperatureWithTime.lyr")
# Clean up variables
del mxd, df, lyr, lyrFile