地理栅栏:查找的特征数使用Oracle空间(点/线/多边形)的多边形的内部
-
26-09-2019 - |
题
如何写一个SQL查询(使用Oracle空间)找到的多边形(地理围栏)内可用的功能的数目;
的特征可以是任一的点,线或多边形本身。
感谢。
解决方案
尝试该声明:
select count(*) from geometry_table t where SDO_RELATE(t.geom_column, geofence, 'mask=INSIDE') = 'TRUE'
/
有mandetory该SDO_RELATE
的第一个参数是一个空间索引几何列。
其他提示
更新:完全不考虑这个建议,阿尔伯特Godfrind表示,它正在重复什么已经被内部完成。因此,它是低效率和缓慢的: 强>
要添加到蒂姆斯的答案,这是很好的做法,因为性能原因结合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'
的问候,克里斯
不隶属于 StackOverflow