Устанавливает минимальный и максимальный масштабы отображения для всех объектов загруженного в карту слоя с заданным типом и заданным режимом.
Visual Basic:
Sub SetModeMinMaxScale(TypeID As Long, ModeNum As Long, minScale As Double, maxScale As Double, flags As Long)
TypeID - ID типа.
ModeNum - номер режима.
minScale - минимальный масштаб отображения.
maxScale - максимальный масштаб отображения.
flags - зарезервирован, должен быть 0.
Если значение масштаба равно -1, то данный масштаб исключается из анализа при отображении слоя на карте.
Заданные пределы читаются методами GetModeMinScale и GetModeMaxScale; пока пределы не заданы, они равны 0. Значение масштаба здесь - знаменатель геодезического масштаба M (1:M), как и у методов SetMinScale и SetMaxScale.
Вызов с -1 прежние пределы не стирает: методы чтения продолжают показывать ранее заданные значения, то есть признак «не учитывать масштаб» хранится отдельно и через объектную модель слоя не читается. Номер режима 0 не означает «все режимы»: пределы режимов такой вызов не меняет.
Метод ничего не возвращает; flags должен быть 0.
Visual Basic:
Sub Layer_SetModeMinMaxScale 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active S = "Тип 6 режим 1: от 1:" & L.GetModeMinScale(6, 1) & " до 1:" & L.GetModeMaxScale(6, 1) 'Показывать этот режим в масштабах от 1:1000 до 1:5000 L.SetModeMinMaxScale 6, 1, 1000, 5000, 0 S = S & vbCrLf & "стало: от 1:" & L.GetModeMinScale(6, 1) & " до 1:" & L.GetModeMaxScale(6, 1) MsgBox S End SubPython:
import zulu def Macro_Layer_SetModeMinMaxScale(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active print("Тип 6 режим 1: от 1:", L.GetModeMinScale(6, 1), "до 1:", L.GetModeMaxScale(6, 1)) # Показывать этот режим в масштабах от 1:1000 до 1:5000 L.SetModeMinMaxScale(6, 1, 1000, 5000, 0) print("стало: от 1:", L.GetModeMinScale(6, 1), "до 1:", L.GetModeMaxScale(6, 1))