地理围栏:如何找到一个点是否或形状是多边形内部使用Oracle Spatial
-
25-09-2019 - |
题
如何找到如果一个点或多边形是另一种多边形的内部使用Oracle空间SQL查询
下面是该方案;
我有一个表(STATE_TABLE),其包含一个空间类型(SDO_GEOMETRY),它是多边形(的说的状态),我有另一个表(UNIVERSITY_TABLE),其含有空间数据(SDO_GEOMETRY)(点/多边形),其包含大学;
现在如何找到如果选择大学(的)是在给定的国家使用SQL SELECT语句。
主要我想在一个地理围栏以定位给定对象(一个或多个)的存在。
感谢。
解决方案
您会需要为使用SDO_CONTAINS或SDO_RELATE与面具“包含”
请参阅位于文档
SDO_CONTAINS http://download.oracle.com/docs /cd/E11882_01/appdev.112/e11830/sdo_operat.htm#sthref1064 获得
或
SDO_RELATE http://download.oracle.com/docs /cd/E11882_01/appdev.112/e11830/sdo_operat.htm#i78531
要么你会做类似下面的其中之一(假设你的空间信息包含在一个名为“GEOM”列在空间索引):
select
ST.NAME, UT.UNIVERSITY_NAME
from
STATE_TABLE ST
INNER JOIN UNIVERSITY_TABLE UT
ON SDO_CONTAINS(ST.GEOM, UT.GEOM) = 'TRUE'
您得原谅我,因为我具体不记得了这个正确的语法,我不知道,如果上面的加盟将在所有正常工作。这应该是足够你指出,虽然方向是正确的。
不隶属于 StackOverflow