Oracle Spatial空间函数分为几大类:
- 缓冲函数(Buffering functions):
- 关系分析函数(Relationship analysis functions):这类函数测算两个SDO_GEOMETRY对象间的关系,比如距离、是否包含等等
- 几何体合并函数(Geometry combination functions):两个几何体的相交、合并等
- 几何分析函数(Geometric analysis functions):例如面积计算
- 聚合函数(Aggregate functions):上面的函数都是针对一个或一对几何体进行分析计算的,聚合函数针对一组几何体进行计算,与普通SQL聚合函数(count,sum等)类似,只能在SELECT中使用。
除了聚合函数,其他类空间函数都在SDO_GEOM包内,也不限于只在SELECT中使用。这些空间函数需要一到两个SDO_GEOMETRY作为输入参数,一个tolerance参数进行微调(tolerance表示两个点能被区分的距离,在此距离之类两个点被视为一个点;对于geodetic几何体,单位为米,通常设为0.1或0.5),此外还可能有其他可选参数。
缓冲函数
缓冲函数SDO_BUFFER围绕一个SDO_GEOMTRY对象创建缓冲区
SDO_BUFFER ( geometry IN SDO_GEOMETRY, distance IN NUMBER, tolerance IN NUMBER [, params IN VARCHAR2] )
params包括 unit和arc_tolerance,前者指定后者及distance的单位,可以查询MDSYS.SDO_DIST_UNITS知道Oracle提供的单位。arc_tolerance只对geodesic几何体有效,其值总比tolerance大。