SetMinScale property (Layer)

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

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

Layer

Синтаксис:

Visual Basic:

Sub SetMinScale(Scale As Double)

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

Описание:

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

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

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

Пример:

Visual Basic:

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

Python:

import zulu

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