Устанавливает минимальный масштаб отображения для всех объектов загруженного в карту слоя.
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 SubPython:
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())