Краткая информация
Класс PauseDrawing приостанавливает отрисовку вида карты при использовании его в контекстной программе для управления (выражение with).
Обсуждение
Класс PauseDrawing - это контекстная программа для управления, которая приостанавливает отрисовку вида карты. Используйте этот класс, чтобы приостановить отрисовку вида карты во время применения обновлений к слою или во время запуска инструментов геообработки. Выходные данные инструментов геообработки будут добавлены на панель Содержание, но не будут отображаться в виде карты до тех пор, пока не будет закрыта контекстная программа для управления. Даже если функция RefreshLayer будет вызвана в контекстной программе для управления PauseDrawing, вид карты не обновится до выхода из блока with.
Синтаксис
PauseDrawing ()
Пример кода
Используйте класс PauseDrawing в качестве контекстной программы для управления при применении обновлений с помощью курсоров обновления.
import arcpy
from random import randint
featureclass_1 = r"c:\data\myGDB.gdb\fc1"
featureclass_2 = r"c:\data\myGDB.gdb\fc2"
with arcpy.PauseDrawing():
with arcpy.da.UpdateCursor(featureclass_1, "class_field") as cursor:
for row in cursor:
classification = randint(1, 5)
row[0] = classification
cursor.updateRow(row)
with arcpy.da.UpdateCursor(featureclass_2, "class_field") as cursor:
for row in cursor:
classification = randint(1, 5)
row[0] = classification
cursor.updateRow(row)
arcpy.RefreshLayer((featureclass_1, featureclass_2))
# The map view will refresh now that the PauseDrawing context manager has closed.
Используйте класс PauseDrawing в качестве контекстной программы для управления при вставке новых объектов и запуске инструмента геообработки.
import arcpy
from random import randint
featureclass_1 = r"c:\data\myGDB.gdb\fc1"
featureclass_2 = r"c:\data\myGDB.gdb\fc2"
calculation_code_block = """
from random import randint
def f():
return randint(1, 5)
"""
with arcpy.PauseDrawing():
# Use cursors to copy geometries from one feature layer to another
with arcpy.da.InsertCursor(featureclass_1, ["SHAPE@"]) as icur:
with arcpy.da.SearchCursor(featureclass_2, "SHAPE@") as scur:
for row in scur:
icur.insertRow((row[0]))
# Use CalculateField to update the class field
arcpy.management.CalculateField(
in_table=featureclass_1,
field="class",
expression="f()",
expression_type="PYTHON3",
code_block=calculation_code_block
)
# The map view will refresh now that the PauseDrawing context manager has closed.