У меня есть шейп-файл, и я хотел бы запросить объекты, которые находятся внутри геометрии (многоугольника), выполнив сценарий SQL. Я использую библиотеку Python osgeo для выполнения запросов:
shapefile = osgeo.ogr.Open(file)
layer = shapefile.GetLayer()
driver = osgeo.ogr.GetDriverByName('ESRI Shapefile')
layer = shapefile.GetLayer()
test = shapefile.ExecuteSQL('select * from "%s"' % layer.GetName())
Однако я понятия не имею, как изменить этот оператор выбора, чтобы выбрать элементы, которые находятся внутри многоугольника (например, POLYGON (12.578608968 55.6344916225, 12.578625747 55.6344383472, 12.5791438324 55.633937277, 12.5792915832 55.6339468684, 12.5792915832 55.6339468684, 12.5692539441) 55.6339468684, 12.5692539441. Моя интуиция подсказывала, что это будет примерно так:
select * from layer
where geometry in Polygon(.....)
Я могу сделать это с помощью графического интерфейса пользователя на рабочем столе QuantumGIS, поэтому должна быть возможность запрашивать функции и в SQL, хотя я не могу найти никаких ресурсов в Интернете.
Есть идеи для этого?