地理栅栏:查找的特征数使用Oracle空间(点/线/多边形)的多边形的内部

StackOverflow https://stackoverflow.com/questions/4611944

  •  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' 

的问候,克里斯

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top