Здравсввуйте. Посмотрите, пожалуйста, почему запрос перестал рабоатть для копирования данных:[CODE]UPD ATE [Atlas Zaventem] SE T [Atlas Zaventem].[area] = [Flanders OSM polygons].[AREA_INT] WHERE [Atlas Zaventem].typeid=3 AND [Atlas Zaventem].Geometry.STWithin([Flanders OSM polygons].Geometry)[/CODE] Слои приложил: [URL=https://drive.google.com/file/d/1Xbu3qDodrXdUFz-V1L7btCGGHmi4u8Sm/view?usp=share_link]https://drive.google.com/file/d/1Xbu3qDodrXdUFz-V1L7btCGGHmi4u8Sm/view?usp=share_link[/URL] [URL=https://drive.google.com/file/d/1_EHnKU17YJJEriMPRIPKdx5ShHWuwZYI/view?usp=share_link]https://drive.google.com/file/d/1_EHnKU17YJJEriMPRIPKdx5ShHWuwZYI/view?usp=share_link[/URL]
Здравствуйте. Пытаюсь перенести данные из слоя QGIS Flanders_v2 all wo BLDGUSE в слой Flanders OSM polygons по признаку касания геометрии STTouches (SQL)[CODE]UPD ATE [Flanders OSM polygons] SE T [Flanders OSM polygons].[SEC] = [QGIS Flanders_v2 all wo BLDGUSE].[SEC] WHERE [Flanders OSM polygons].Geometry.STTouches([QGIS Flanders_v2 all wo BLDGUSE].Geometry) AND [Flanders OSM polygons].Geometry.Selected()=1[/CODE]Даже когда добавил последнюю строчку и выделил два объекта в слое Flanders OSM polygons все равно ошибка: Query has been timed out. Что я делаю не так?
Здравствуйте. 1. Пытаюсь адапртировать пример с сайта. Не работает, проблема в записи в БД. Сами координаты читает, проверил через MsgBox. Пытаюсь писать в таблицу Потребитель, которая выглядит вот так (см. картинку). x, y - тип Вещественное 2. Где найти список типов ZuluThermo? То, что 3 - это потребитель - пришлось искать в примерах. 3. Возможно ли чтение координат в метрах с локальной сетки? [URL=https://ibb.co/nkJB73P]https://ibb.co/nkJB73P[/URL] [URL=https://ibb.co/yXd6XYR]https://ibb.co/yXd6XYR[/URL] [CODE]Sub gure 'Пример записи географических координат центра объекта в таблицу 'Текущая активная карта 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)) 'MsgBox "L.Elements.getElement(Keys.Item(i)) = " & L.Elements.getElement(Keys.Item(i)) 'Если объект примитив If El.TypeID = 3 Then 'Получаем точку центра объекта в координатах проекции слоя Set Pt = El.GetCenter() 'MsgBox "El.GetCenter(5) = " & El.GetCenter(5) 'Получаем широту и долготу точки в WGS84 Set Pt = CRS1.GetConvertPoint(Pt.X, Pt.Y, CRS_WGS84) MsgBox "CRS1.GetConvertPoint(Pt.X, Pt.Y, CRS_WGS84) = " & CStr(Pt.X) If pt.IsValid = False Then MsgBox "Ошибка преобразования" End If 'Записываем широту и долготу в соответствующие поля ("X" и "Y") Db.UpdateBaseRecord Keys.Item(i), "x" + CHR(10) + "y", CStr(Pt.X) + CHR(10) + CStr(Pt.Y), 0 Db.UpdateBaseRecord Keys.Item(i), "x", CStr(Pt.X), 0 Db.UpdateBaseRecord Keys.Item(i), "y", CStr(Pt.Y), 0 'MsgBox "Обновлено " & PT & "записей" End If Next MsgBox "Обновлено записей" End Sub[/CODE]