Возвращает/устанавливает для слоя значение максимального масштаба (см/пиксел), при котором слой еще будет отображаться на карте.
Visual Basic:
Property MaxScale As Double
Это тот же предел показа, который задает метод SetMaxScale и возвращает GetMaxScale, только в других единицах: там знаменатель геодезического масштаба M (1:M), здесь сантиметры на пиксел. Пересчет - деление на 37,7952755905512, число пикселов в сантиметре при 96 dpi: MaxScale = M / 37,7952755905512.
Значения 0 и -1 означают, что ограничения по максимальному масштабу нет; у слоя, которому предел не задавали, свойство равно -1.
Предел действует для слоя, загруженного в карту, и в файле слоя не сохраняется: слой, открытый заново, снова показывает -1.
В случае неудачи возникает исключение с одним из следующих кодов:
Код
Описание
513
Слой не открыт. Операция проводится со слоем, который либо не загружен в карту, либо не открыт с помощью метода Open.
Visual Basic:
Sub Layer_MaxScale 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Prev = L.MaxScale S = "Было: " & Prev & " см/пиксел (1:" & L.GetMaxScale & ")" 'Ставим предел показа и смотрим его же в другом виде L.MaxScale = 0.5 S = S & vbCrLf & "стало: " & L.MaxScale & " см/пиксел (1:" & L.GetMaxScale & ")" 'Возвращаем как было L.MaxScale = Prev MsgBox S End SubPython:
import zulu def Macro_Layer_MaxScale(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active was = L.MaxScale print("Было:", was, "см/пиксел (1:", L.GetMaxScale(), ")") # Ставим предел показа и смотрим его же в другом виде L.MaxScale = 0.5 print("стало:", L.MaxScale, "см/пиксел (1:", L.GetMaxScale(), ")") # Возвращаем как было L.MaxScale = was