Пространственные запросы
Пространственные запросы
Как составить SQL запрос вида 'SELECT * FROM table WHERE table.obj Contains pointObject" где pointObject - переменная
Re: Пространственные запросы
Добрый день.
Насколько я знаю , пока таких возможностей нет.
Один из вариантов записать pointObject в какую то временную таблицу , тогда можно будет выполнить запрос аналогичный запрос
Насколько я знаю , пока таких возможностей нет.
Один из вариантов записать pointObject в какую то временную таблицу , тогда можно будет выполнить запрос аналогичный запрос
Re: Пространственные запросы
В SQL-запросе можно создавать геометрию "на лету" из строки
Например с помощью FromMIF или GeomFromText
Ниже пример на Python с запросом использующим FromMIF:
Например с помощью FromMIF или GeomFromText
Ниже пример на Python с запросом использующим FromMIF:
Code: Select all
import axipy
from PySide2.QtWidgets import QFileDialog
fn = QFileDialog.getOpenFileName(axipy.view_manager.global_parent, 'Открыть таблицу', None, 'MapInfo tab (*.tab)')
x = 68.42
y = 57.64
if fn[0]:
with axipy.provider_manager.openfile(fn[0]) as tbl:
if isinstance(tbl, axipy.da.Table):
with axipy.data_manager.query_hidden(
f"Select * From {tbl.name} Where obj Contains FromMIF('Point {x} {y}')") as qry:
for itm in qry.items():
print('----------')
for val in itm.values():
if not isinstance(val, (axipy.da.Geometry, axipy.da.Style)):
print(val)
Re: Пространственные запросы
Спасибо, сработала привычка писать на mapbasic, хотя sql запросы мне известны. Попробую проверить оба варианта на скорость.
Re: Пространственные запросы
Добрый день.
У обоих вариантов есть свои плюсы и минусы :
- в 1 варианте создание дополнительной таблицы ( хотя это может быть и ссылка на запрос )
- 2 варианта , это текстовое представление объектов , что приводит к проблеме форматирования ( число знаков после запятой ) и возможно большая длина строки запроса ( простой пример полигон границы какого либо субъекта РФ)
У обоих вариантов есть свои плюсы и минусы :
- в 1 варианте создание дополнительной таблицы ( хотя это может быть и ссылка на запрос )
- 2 варианта , это текстовое представление объектов , что приводит к проблеме форматирования ( число знаков после запятой ) и возможно большая длина строки запроса ( простой пример полигон границы какого либо субъекта РФ)
Re: Пространственные запросы
Добрый день.
У обоих вариантов есть свои плюсы и минусы :
- в 1 варианте создание дополнительной таблицы ( хотя это может быть и ссылка на запрос )
- 2 варианта , это текстовое представление объектов , что приводит к проблеме форматирования ( число знаков после запятой ) и возможно большая длина строки запроса ( простой пример полигон границы какого либо субъекта РФ)
Если говорить о MapBasice , то начиная с 17 версии можно было писать функцию на MapBasic и регистрировать как функцию SQL , что было очень удобно
У обоих вариантов есть свои плюсы и минусы :
- в 1 варианте создание дополнительной таблицы ( хотя это может быть и ссылка на запрос )
- 2 варианта , это текстовое представление объектов , что приводит к проблеме форматирования ( число знаков после запятой ) и возможно большая длина строки запроса ( простой пример полигон границы какого либо субъекта РФ)
Если говорить о MapBasice , то начиная с 17 версии можно было писать функцию на MapBasic и регистрировать как функцию SQL , что было очень удобно