SetModeMinMaxScale property (Layer)

Устанавливает минимальный и максимальный масштабы отображения для всех объектов загруженного в карту слоя с заданным типом и заданным режимом.

Применяется к:

Layer

Синтаксис:

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 Sub

Python:

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))