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