空间查询和分析组件提供查询和分析空间几何体的核心功能,包括几何引擎(Geometry Engine)和索引引擎(Index Engine) 。
几何引擎提供分析,比较操作几何体的函数。 索引引擎为了提高空间查询效率提供空间索引。索引引擎提供等价函数称之为操作符。
注意:几何体处理函数不使用空间索引,他们相对于空间操作符对空间数据要求更严格。
(1)、SDO_GEOM.SDO_DISTANCE sdo_geom.sdo_distance直接计算两点间的距离,点的坐标用经纬度表示,如果不指定投影参数 那么
这个距离应该就是球面距离。
SDO_DISTANCE
(
geometry1 IN SDO_GEOMETRY,
geometry2 IN SDO_GEOMETRY,
tolerance IN NUMBER
)
geometry1和geometry2是起始的两个参数,它们表示SDO_GEOMETRY对象。
tolerance表示数据集的容差。对于大地测量的数据,它们通常是0.5或者0.1(0.5米或者是0.1米)。
eg:查询离北京国贸饭店最近的五条道路
(2)、sdo_Geom.Relate
sdo_Geom.Relate(sdo_Geometry1,‘MASK’,sod_Geometry2,tolerance ):用于判断一个几何体与另
一个几何体的关系.
参数说明:
sdo_Geometry1,sdo_Geometry2为空间数据对应的几何对象。
Tolerance: 容许的精度范围;
MASK参数:
Anyinteract: sdo_Geometry2落在sdo_Geometry1面上包括在边上。
Contains: sdo_Geometry2完全包含在sdo_Geometry1几何对象中,并且两个几何对象的边没有交叉。
Coveredby: sdo_Geometry1完全包含在sdo_Geometry2中,并且这两个几何对象的边有一个或多个点相互重叠。
Covers: sdo_Geometry2完全包含在sdo_Geometry1中,并且这两个几何对象的边有一个或多个点相互重叠。
Disjoint: 两个几何没有重叠交叉点,也没有共同的边。
Equal: 两个几何是相等的。
Inside: sdo_Geometry1完全包含在sdo_Geometry2几何对象中,并且两个几何对象的边没有交叉。
On: sdo_Geometry1的边和内部的线完全在sdo_Geometry2上。
Overlapbdydisjoint: 两个几何对象交迭,但是边没有交叉。
Overlapbdyintersect: 两个几何对象交迭,并且边有部分交叉。
Touch: 两个几何对象有共同的边,但没有交叉。
eg:选择拱辰北大街上的所有POI点