Oracle空间数据库函数使用

大雁往南飞 2014-06-04

最近一段时间一直在用Oracle的空间数据库做一些空间数据处理和分析功能,写这篇文章主要是做一个笔记,毕竟好记性不如烂笔头嘛。

首先说说我用的第一个函数:SDO_GEOM.SDO_BUFFER,根据官方文档的描述,这个函数是用来返回一个代表缓冲区的几何体(This function returns a geometry object representing the buffer polygon,也不知道我理解的准不准,呵呵)。官方给出了一个函数的说明:

SDO_GEOM.SDO_BUFFER(

    geom IN SDO_GEOMETRY,

    dim IN SDO_DIM_ARRAY,

    dist IN NUMBER

    [, params IN VARCHAR2]

    ) RETURN SDO_GEOMETRY;

or

SDO_GEOM.SDO_BUFFER(

    geom IN SDO_GEOMETRY,

    dist IN NUMBER,

    tol IN NUMBER

    [, params IN VARCHAR2]

    ) RETURN SDO_GEOMETRY;

SDO_GEOMETRY是oracle数据里面定义的代表空间几何体的类型,我用的是第二个函数,指定一个缓冲区的范围和容差,至于后面的params则是一串字符,用来指定一距离单位和arc_tolerance,但是我也没搞懂这个是什么意思,看来英语还是要好好补补啊。

这是我写的例子:

SELECT T.TOWERNAME , SDO_GEOM.SDO_BUFFER(T.STATIONMAP , 500, 1,
                                  'unit=km arc_tolerance=0.05')
 FROM DMSDKY.TB_PG_TOWERINFO t
 WHERE T.TOWERCODE ='12M00000035385713'

显示的结果如下:

Oracle空间数据库函数使用

--------------------------------------分割线 --------------------------------------

--------------------------------------分割线 --------------------------------------