Запись координат центра объекта в таблицу (VBScript)
'Пример записи географических координат центра объекта в таблицу
Sub GetLatLon()
'Текущая активная карта
Set Doc = Zulu.ActiveMapDoc
'Активный слой текущей карты
Set L = Doc.Layers.Active
Set Db = CreateObject("zb.database")
'Проекция слоя
Set CRS1 = L.GetCrs()
'Создание проекция WGS84
Set CRS_WGS84 = CreateObject("zululib.CRS")
CRS_WGS84.InitByCode("EPSG:4326")
'Открыли базу данных для типа -1 (примитивы)
Db.Open L.BaseName
'Список ключей объектов слоя
Set Keys = L.ElementKeys
'По всем объектам слоя
For i = 1 To Keys.Count
Set El = L.Elements.getElement(Keys.Item(i))
'Если объект примитив
If El.TypeID = -1 Then
'Получаем точку центра объекта в координатах проекции слоя
Set Pt = El.GetCenter()
'Получаем широту и долготу точки в WGS84
Set Pt = CRS1.GetConvertPoint(Pt.X, Pt.Y, CRS_WGS84)
'Записываем широту и долготу в соответствующие поля ("X" и "Y")
Db.UpdateBaseRecord Keys.Item(i), "X" + CHR(10) + "Y", CStr(Pt.X) + CHR(10) + CStr(Pt.Y), 0
End If
Next
End Sub
Последнее обновление — 27.12.2018 16:31:14