SetMaxScale property (Layer)

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

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

Layer

Синтаксис:

Visual Basic:

Sub SetMaxScale(Scale As Double)

Scale - максимальный масштаб отображения.

Описание:

Метод задает геодезический масштаб M (1:M) в отличии от свойства MaxScale (см/пиксел).

Это один и тот же предел, записанный по-разному: свойство MaxScale равно знаменателю M, деленному на 37,7952755905512 - число пикселов в сантиметре при 96 dpi. Прочитать заданное в том же виде позволяет метод GetMaxScale.

Значения 0 и -1 означают, что ограничения нет; у слоя, которому предел не задавали, MaxScale равен -1. В файле слоя предел не сохраняется: слой, открытый заново, снова показывает -1.

Пример:

Visual Basic:

Sub Layer_SetMaxScale
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Prev = L.GetMaxScale
S = "Было: 1:" & Prev & " (" & L.MaxScale & " см/пиксел)"
'Показывать слой, пока знаменатель масштаба не меньше 5000
L.SetMaxScale 5000
S = S & vbCrLf & "стало: 1:" & L.GetMaxScale & " (" & L.MaxScale & " см/пиксел)"
'Возвращаем как было
L.SetMaxScale Prev
S = S & vbCrLf & "вернули: 1:" & L.GetMaxScale
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_SetMaxScale():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    prev = L.GetMaxScale()
    print("Было: 1:", prev, "(", L.MaxScale, "см/пиксел)")
    # Показывать слой, пока знаменатель масштаба не меньше 5000
    L.SetMaxScale(5000)
    print("стало: 1:", L.GetMaxScale(), "(", L.MaxScale, "см/пиксел)")
    # Возвращаем как было
    L.SetMaxScale(prev)
    print("вернули: 1:", L.GetMaxScale())