MinScale property (Layer)

Возвращает/устанавливает для слоя значение минимального масштаба (см/пиксел), при котором слой еще будет отображаться на карте.

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

Layer

Синтаксис:

Visual Basic:

Property MinScale As Double

Описание:

Это тот же предел показа, который задает метод SetMinScale и возвращает GetMinScale, только в других единицах: там знаменатель геодезического масштаба M (1:M), здесь сантиметры на пиксел. Пересчет - деление на 37,7952755905512, число пикселов в сантиметре при 96 dpi: MinScale = M / 37,7952755905512.

Значения 0 и -1 означают, что ограничения по минимальному масштабу нет; у слоя, которому предел не задавали, свойство равно -1.

Предел действует для слоя, загруженного в карту, и в файле слоя не сохраняется: слой, открытый заново, снова показывает -1.

В случае неудачи возникает исключение с одним из следующих кодов:

Код

Описание

513

Слой не открыт. Операция проводится со слоем, который либо не загружен в карту, либо не открыт с помощью метода Open.

Пример:

Visual Basic:

Sub Layer_MinScale
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Prev = L.MinScale
S = "Было: " & Prev & " см/пиксел (1:" & L.GetMinScale & ")"
'Ставим предел показа и смотрим его же в другом виде
L.MinScale = 0.05
S = S & vbCrLf & "стало: " & L.MinScale & " см/пиксел (1:" & L.GetMinScale & ")"
'Возвращаем как было
L.MinScale = Prev
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_MinScale():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    was = L.MinScale
    print("Было:", was, "см/пиксел (1:", L.GetMinScale(), ")")
    # Ставим предел показа и смотрим его же в другом виде
    L.MinScale = 0.05
    print("стало:", L.MinScale, "см/пиксел (1:", L.GetMinScale(), ")")
    # Возвращаем как было
    L.MinScale = was