加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

SDO_WITHIN_DISTANCE

(2016-08-03 17:08:02)
标签:

oracle_spatial

分类: Oracle

SDO_WITHIN_DISTANCE

格式:

SDO_WITHIN_DISTANCE(geometry1, aGeom, params);

描述:

通过空间索引,检索出距离给定几何对象(可以是具体的多边形、点等)的一定范围内的所有空间对象。

参数和关键字:

geometry1:一个表中几何列的列名。这列的几何对象如果是在给定对象aGeom的一定范围之内的话,将被检索出来。这个geometry1对应的几何列务必创建空间索引。

该列的数据类型为:MDSYS.SDO_GEOMETRY

aGeom:值根据这个对象和一定距离去检索geometry1。它可以是一个表的几何列(包含对象的变量),也可以是一个具体的几何对象(如通过SDO_GEOMETRY构造函数的几何对象)。

该列的数据类型为:MDSYS.SDO_GEOMETRY

PARAMS:决定操作子的行为。数据类型为VARCHAR2

params具体有以下几种:

         Distance:指距离长度,这是个必须的参数。如果指定过滤的几何有关联的参考坐标,这个距离的单位就是参考坐标的单位。数据类型为Number

         idxtab1:可以参考SDO_FILTER中的介绍,在此不累赘。

         Querytype:设置为’querytype=FILTER’将执行第一步过滤操作。如果querytype没有指定第一步和第二步过滤操作将执行(默认为该种情况)。数据类型为VARCHAR2

         Unit:指定距离单位。例如:unit=’KM’.具体的单位SDO_UNIT 值来之MDSYS.SDO_DIST_UNITS 表。数据类型为Number。默认的单位适合具体的数据关联的,例如数据是投影数据的话,单位为M.

返回

表达式SDO_WITHIN_DISTANCE(arg1, arg2, arg3) = ’TRUE’,为True将返回一定距离子内的所有要素。


例子:筛选出某点与点图层距离为0.5m内的点对象

     --点与点间的距离筛选(包括线与点)

    select sdo_util.to_wktgeometry(a.shape) as shapestring,objectid FROM 


DIGITALSIP.OSE_PCROAD_SDO a  

     where SDO_WITHIN_DISTANCE(a.shape, mdsys.SDO_GEOMETRY(2001,

                                                         NULL,

                                                         sdo_point_type


(63027.87286120421,52255.54797384081, NULL),

                                                         NULL,

                                                         NULL),'distance = 


 

0.5') = 'TRUE';

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有