0

我如何编写 SQL 查询(使用 Oracle Spatial)来查找多边形(地理围栏)内可用的特征数量;

要素可以是点、线或多边形本身。

谢谢。

4

2 回答 2

2

试试这个说法:

select count(*) from geometry_table t where SDO_RELATE(t.geom_column, geofence, 'mask=INSIDE') = 'TRUE'
/

第一个参数必须SDO_RELATE是带有空间索引的几何列。

于 2011-01-06T08:15:27.070 回答
-1

更新:完全无视这个建议,Albert Godfrind 说它正在重复内部已经在做的事情。所以它是低效且缓慢的:

为了增加 Tims 的答案,出于性能原因,结合 SDO_FILTER 和 SDO_RELATE 是一种很好的做法。SDO_FILTER 速度很快,但返回的几何图形太多,它会为您提供最小边界矩形 (MBR) 与栅栏几何图形相交的所有几何图形。SDO_RELATE 准确但缓慢。所以将两者结合起来:

select count(*) 
from geometry_table t 
where SDO_FILTER(t.geom_column, geofence) = 'TRUE' and SDO_RELATE(t.geom_column, geofence, 'mask=INSIDE') = 'TRUE' 

问候,克里斯

于 2012-01-13T16:16:42.153 回答