Layer object

Представляет слой ZuluGIS. Слои карты составляют коллекцию Layers.

Входит в состав ZuluGIS 2021 Library.

Регистрационная информация:

PROGID:

ZuluLib.Layer

CLSID:

{12507025-0B01-11D2-B55D-444553540000}

Свойства и методы:

Свойства

Методы

Active

BaseID

BaseName

Bases

ChangedElements

CommonFillStyleEnabled

CommonLineStyleEnabled

CommonStyle

CurrentID

CustomData

EditState

ElementKeys

Elements

FillStyles

InMemory

InMemoryLayer

LabelLayers

LabelsID

LineStyle

LineStyles

LoginName

Map

MaxScale

MinScale

Name

NetworkObjects

NetworkTools

NetworkWeightSets

ObjectTypes

Printable

QuickSearch

ReliefLayer

Selection

ServerVersion

ShowDirections

Symbols

TargetSelection

ThemeFilters

ThemeId

ThemeName

Themes

TileLayer

TrackingLayer

Type

Units

UserLabel

UserName

Visible

WmsLayer

AddBufferZone

AddBufferZoneEx

AddContour

AddElement

AddElementEx

AddElementFromRaw

AddEnumElement

AddEnumElementEx

AddFromWKT

AddGeoObject

AddPolyContour

AddPolyLine

AddPolyPolyLine

AddSimpleSymbol

AddSymbol

AddSymbolEx

AddSymbolsFinish

AddSymbolsStart

AddText

AddTextByType

ApplyDefaultSettings

AttachToNodes

ChangeElemID

ConvertPrimitiveToType

ConvertTypeToPrimitive

CopyLayer

Create

CreateLabels

CreatePolygonsFromLines

CreateTheme

CreateVoronoi

CutSelectedElementsFromTarget

DecombineElement

DeleteElement

DeleteSelectedElements

DrawElemIDLabel

DrawLabelsClose

DrawLabelsInit

EditElemStyle

EditStructure

EditSymbol

ElemIDByXY

EnumElements

EraseInsidePolygon

EraseInsideRegion

EraseOutsidePolygon

EraseOutsideRegion

EraseSelection

ExcludeSymbol

ExecSQL

FinishSequentialWriteMode

GetBounds

GetBoundsCRS

GetBoundsCRSRectangle

GetBoundsRectangle

GetClosestElementByXY

GetClosestElementByXYEx

GetCRS

GetCuttingNodes

GetDescription

GetDrawOrder

GetEditFlags

GetElementsByPoint

GetIncidentElements

GetKeyByUserID

GetKeysByDrawHandle

GetLabelsID

GetLargestID

GetLastChangesTime

GetLastDatabaseChangesDate

GetLastErrorCode

GetLastErrorString

GetLastGeometryChangesDate

GetLayerNetworkModel

GetMaxScale

GetMinScale

GetModeMaxScale

GetModeMinScale

GetModeVisible

GetSelection

GetShortWay

GetShortWayTree

GetShortWayTreeEx

GetTypeMaxScale

GetTypeMinScale

GetTypeVisible

GetWebParams

GetWebParamsCount

IndexInMemoryLayer

InsertSymbol

IntersectByContour

IntersectByLayer

IntersectByPolyContour

IntersectByRadius

IsConnected

IsInCircle

IsRemote

JoinSelectedElements

LockForRead

LockForWrite

MoveSelection

NetWorkDataPrepare

NetWorkRecalc

NetworkSwitchAnalyze

Open

OpenDatabase

PublishForWeb

ReadData

RotateSelection

SaveDefaultSettings

SaveTemporaryRaster

ScaleSelection

SelectByType

SelectByTypes

SetCRS

SetDescription

SetDrawOrder

SetEditFlags

SetElemsModes

SetElemStyle

SetElemsTypes

SetInputCRS

SetInputCRSProjection

SetLabelsID

SetMaxScale

SetMinScale

SetModeMinMaxScale

SetModesByElemsStates

SetModeVisible

SetModified

SetSymbolOrientation

SetTemporaryTheme

SetTypeMinMaxScale

SetTypeVisible

ShortWay

ShortWayFinish

ShortWayStart

SimplifySelectionGeometry

SplitByPolygon

SplitByPolyline

SplitByRegion

SplitBySymbol

StartEdit

StartSequentialWriteMode

StopEdit

SynchronizeDatabase

TakeCRS

ThemeCreate

UnlockForRead

UnlockForWrite

UpdateFromAscii

WriteData

WriteElement

Описание:

Через объект Layer доступны объекты слоя, их типы и стили, семантические базы данных и система координат слоя, а для сетевого слоя — ещё и расчёты на сети. Вид слоя возвращает свойство Type — одну из констант eLayerType.

Слой, загруженный в карту, берётся из коллекции Layers: например, активный слой карты возвращает свойство Active этой коллекции. Слой можно открыть и без карты: объект создаётся функцией CreateObject("ZuluLib.Layer"), в python — вызовом zulu.Layer(), и связывается со слоем методом Open; новый векторный слой создаёт и открывает метод Create. У слоя, открытого без карты, свойство Map возвращает Nothing.

Для работы с тайловым слоем, слоем WMS, рельефом, слоем трекинга и слоем, загруженным в память, служат объекты, которые возвращают свойства TileLayer, WmsLayer, ReliefLayer, TrackingLayer и InMemoryLayer.

Для записи большого числа объектов предназначен режим буферизованной записи — методы StartSequentialWriteMode и FinishSequentialWriteMode, для быстрой проверки занятости точек при добавлении символов — методы AddSymbolsStart и AddSymbolsFinish.

Пример:

Visual Basic:

Sub Layer_cls
'Создаем объект слоя и открываем слой из примеров поставки
Set L = CreateObject("ZuluLib.Layer")
L.Open "C:\Program Files\ZuluGIS\Examples\Thermo\Ctp\seti_Len"
'Считаем объекты слоя
n = 0
Set En = L.EnumElements
En.MoveFirst
Do While Not En.IsEOF
  n = n + 1
  En.MoveNext
Loop
Set R = L.GetBoundsRectangle
MsgBox "Слой: " & L.UserName & vbCrLf & _
       "Тип слоя: " & L.Type & vbCrLf & _
       "Объектов: " & n & vbCrLf & _
       "Габариты: " & R.Xmin & ", " & R.Ymin & " - " & R.Xmax & ", " & R.Ymax
End Sub

Python:

import zulu

def Macro_Layer_cls():
    # Создаем объект слоя и открываем слой из примеров поставки
    L = zulu.Layer()
    L.Open(r"C:\Program Files\ZuluGIS\Examples\Thermo\Ctp\seti_Len")
    # Считаем объекты слоя
    n = 0
    En = L.EnumElements()
    En.MoveFirst()
    while not En.IsEOF():
        n += 1
        En.MoveNext()
    R = L.GetBoundsRectangle()
    print("Слой:", L.UserName)
    print("Тип слоя:", L.Type)
    print("Объектов:", n)
    print("Габариты:", R.Xmin, R.Ymin, "-", R.Xmax, R.Ymax)