Возвращает/устанавливает для слоя значение минимального масштаба (см/пиксел), при котором слой еще будет отображаться на карте.
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 SubPython:
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