Выбор объектов по контуру

Вопросы связанные с работой ГИС Аксиома
Ответить
Аватара пользователя
Владимир В
Пользователь
Сообщения: 31
Зарегистрирован: 25 мар 2024, 09:54

Выбор объектов по контуру

Сообщение Владимир В » Сегодня, 12:46

Аксиома 7.1.1
Добрый день. Возникла задача выборки объектов из слоя по произвольному контуру. Не нашел решение по формированию запроса выборки в библиотеке axipy.
Пример кода:

poly = Geometry.from_wkt('POLYGON ((105307.1155 86313.168, 106131.3205 85945.0105, 106330.1455 86389.2715, 105506.1164 86757.4136, 105307.1155 86313.168))')
query_command = "select * from FZ where poly intersects FZ.obj" # poly.intersects(FZ.obj)
query_table = data_manager.query(query_command)

Непонятно, как корректно сделать запрос. Строка запроса query_command в данном случае не понимает объект poly. Подскажите, пожалуйста, решение данной проблемы.
Аватара пользователя
Александр
Администратор
Сообщения: 756
Зарегистрирован: 18 апр 2019, 11:21

Re: Выбор объектов по контуру

Сообщение Александр » Сегодня, 18:10

Есть специальный метод для вашего случая:
itemsInObject(obj: Geometry) → Iterator[Feature]
который запрашивает записи из таблицы с фильтром по геометрическому объекту.

Если нужно именно запросом, то можно так:

Code: Select all

poly = "POLYGON ((105307.1155 86313.168, 106131.3205 85945.0105, 106330.1455 86389.2715, 105506.1164 86757.4136, 105307.1155 86313.168))"
query_command = f"select * from FZ where FZ.obj intersects ToAxiGeo(GeomFromText('{poly}'), TableCoordSys('FZ'))"
query_table = axipy.data_manager.query(query_command, axipy.TypeSqlDialect.sqlite)
Ответить