【发布时间】:2011-12-08 03:11:08
【问题描述】:
我想使用空间 SQL 查询获取距 Spatialite 中给定点最近的要素。我想使用索引表来加速它。空间索引边界应根据定义的点和给定的容差计算,所有完全/部分在 rtree 边界框内的特征都应在查询中使用。
我尝试了几种方法,但我总是空间索引边界问题。
像这样:
SELECT *, Distance(GeomFromText('POINT(19.02658 47.51574)'),mo_utak_polyline.Geometry) 作为距离 mo_utak_polyline WHERE ROWID IN (SELECT pkid FROM idx_mo_utak_polyline_Geometry WHERE xmin > 19.01408 AND xmax 47。 47.52824) AND 距离
或者这个:
SELECT *,Intersects(GeomFromText('POINT(19.02658 47.51574)'), megyehatar_region.Geometry) as intersects FROM megyehatar_region WHERE ROWID IN (SELECT pkid FROM idx_megyehatar_region_Geometry WHERE xmin > 14.02658 AND xmax
我总能获得完全包含在我的索引定义的边界框内的特征。这对我来说是个大问题,例如当我尝试查询线要素时,当它们的长度完全不同时,可能是1厘米甚至1000公里,因此很难设置空间索引边界框的大小。
你认为最好的方法是什么?
如何更改这部分查询
从 idx_mo_utak_polyline_Geometry 中选择 pkid,其中 xmin > 19.01408 AND xmax 47.50324 AND ymax
不仅返回边界框包含的特征,还返回与边界框相交的特征?
提前致谢!
【问题讨论】:
标签: geometry spatial spatialite