Интерфейс для работы со слоем рельефа. Возвращается свойством ReliefLayer объекта Layer.
Входит в состав ZuluGIS 2021 Library.
Слой рельефа хранит модель высот. Моделей две: TIN — триангуляционная сетка, в которой известны высоты вершин всех треугольников, и SRTM — сетка высотных отметок. Свойство Type такого слоя равно eReliefLayer (104) для локального слоя или eRemoteReliefLayer (105) для слоя на ZuluServer, см. eLayerType.
Методы делятся на три группы:
чтение высот — GetZ. При массовом чтении буферизованный доступ к данным слоя открывает QuickAccessStart и закрывает QuickAccessStop;
измерение — GetSurfaceArea возвращает площадь поверхности рельефа внутри заданного полигона;
преобразование в векторные слои — SaveToLayer создаёт слой из треугольников триангуляции, SaveToGridLayer — слой с регулярной сеткой, в ячейках которой записаны высоты, CreateVoronoi — слой с ячейками Вороного.
Свойство ReliefLayer возвращается для любого слоя, а не только для слоя рельефа. На прочих слоях методы интерфейса никаких действий не выполняют.
Visual Basic:
Sub IReliefLayer_cls 'Слой рельефа из примеров поставки Set L = CreateObject("ZuluLib.Layer") L.Open "C:\Program Files\ZuluGIS\Examples\Thermo\Kvartal\relief.ztr" Set R = L.ReliefLayer 'Габариты слоя, чтобы взять точку в его середине Set rc = L.GetBoundsRectangle 'При массовом чтении высот открывают буферизованный доступ R.QuickAccessStart z = R.GetZ((rc.Xmin + rc.Xmax) / 2, (rc.Ymin + rc.Ymax) / 2, L.GetCRS) R.QuickAccessStop MsgBox "Тип слоя: " & L.Type & vbCrLf & "Высота в центре: " & z End SubPython:
import zulu def Macro_IReliefLayer_cls(): # Слой рельефа из примеров поставки L = zulu.Layer() L.Open(r"C:\Program Files\ZuluGIS\Examples\Thermo\Kvartal\relief.ztr") R = L.ReliefLayer # Габариты слоя, чтобы взять точку в его середине rc = L.GetBoundsRectangle() # При массовом чтении высот открывают буферизованный доступ R.QuickAccessStart() z = R.GetZ((rc.Xmin + rc.Xmax) / 2.0, (rc.Ymin + rc.Ymax) / 2.0, L.GetCRS()) R.QuickAccessStop() print("Тип слоя:", L.Type) print("Высота в центре:", z)