【发布时间】:2015-12-08 17:58:38
【问题描述】:
我有一个 shapefile,我想通过执行 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())
不过,我不知道如何改变这个SELECT语句来选择是多边形的内部项目(即POLYGON(12.578608968 55.6344916225,12.578625747 55.6344383472,12.5791438324 55.633937277,12.5792915832 55.6339468684,12.5793944291 55.6340760336,12.578608968 55.6344916225))。我的直觉说它会是这样的:
select * from layer
where geometry in Polygon(.....)
我可以使用 QuantumGIS 桌面中的 GUI 来做到这一点,因此它必须也可以在 SQL 中查询要素,尽管我在网上找不到任何资源。
对此有什么想法吗?
【问题讨论】:
-
Qgis 控制台(python)可以吗?
-
你这是什么意思?我不想使用 Qgis。我拥有的是独立的 Python 应用程序,我想在其中查询 shapefile。
-
您要选择另一个多边形内的多边形吗?那么你需要两个多边形还是单独的几何图形?例如县内的学校?
-
我想选择多边形中的点(来自 shapefile 的特征)
-
好的,那么示例将是 X 县内有多少所学校?