我在SpatiaLite中有数千个多边形。我正在尝试执行“接触”查询:
select map1.* from map1,map2
where touches(map1."Geometry",map2."Geometry")
哇,慢吗?
但是,如果我要求它仅对map1中的一个地块进行处理,则它的运行速度非常快。
select map1.* from map1,map2
where touches(map1."Geometry",map2."Geometry")
and map1."ROWID" = 753
我确实希望第一个查询的运行速度会变慢,但是它的运行速度却惊人地慢。它在SQLServer,Manifold GIS和PostGIS中运行非常快。Spatialite真的效率低下吗?
9
请参见此处,了解一些关于spaceiteite速度的测试-如果您使用索引,则表明在大型数据集上进行ST_Intersects操作的速度提高了200倍!
—
Simbamangu
感谢您的链接Fezter。该示例的唯一问题是,他必须编写额外的SQL代码以包含边界框(并且,他不得不强制将其作为信封输入)。如果下一版本的spacespaceite会简单地利用已经存在的空间索引,那就太好了。
—
2012年
欢迎来到gis.stackexchange.com!该网站的格式意味着发布的答案应该是原始问题的答案。回答答案或评论时,最好使其成为评论。
—
肖恩