大雁往南飞 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'
显示的结果如下:
--------------------------------------分割线 --------------------------------------
--------------------------------------分割线 --------------------------------------