1、索引创建

  • 添加元数据

    • INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)
      VALUES ('BEIJING_LINK', 'GEOMETRY',
      MDSYS.SDO_DIM_ARRAY
      (MDSYS.SDO_DIM_ELEMENT('X', -180, 180, 0.00000000050),
      MDSYS.SDO_DIM_ELEMENT('Y', -90, 90, 0.00000000050)),
      8307);

  • 创建索引
    • create index idx_beijing_link on beijing_link(geometry)
      indextype is mdsys.spatial_index;

  • 查询索引

    select * from user_sdo_index_info where index_name='IDX_BEIJING_LINK' ;

2、空间操作符使用

1、sdo_filter相交

select count(*)
from beijing_link a,
(select link_pid, geometry from beijing_link where rownum = 1) b
where sdo_filter(a.geometry, b.geometry) = 'TRUE'
and a.link_pid != b.link_pid;

2、sdo_anyinteract 和sdo_filter相似

select count(*)
from beijing_link a,
(select link_pid, geometry from beijing_link where rownum = 1) b
where sdo_anyinteract(a.geometry, b.geometry) = 'TRUE'
and a.link_pid != b.link_pid;

3、sdo_nn(geometry a,geometry b,tol c,unit)返回距离最近的前N个

select sdo_geom.sdo_distance(a.geometry, b.geometry, 0.1, 'unit=meter')
from beijing_link a,
(select link_pid, geometry from beijing_link where rownum = 1) b
where sdo_nn(a.geometry, b.geometry, 'sdo_num_res=6') = 'TRUE';

4、sdo_nn_distance返回距离

select a.link_pid,b.link_pid,sdo_nn_distance(1) distance
from beijing_link a,
(select link_pid, geometry from beijing_link where rownum = 1) b
where sdo_nn(a.geometry, b.geometry, 'sdo_num_res=10',1) = 'TRUE'
order by distance;

5、sdo_relate 判断两个几何关系

select count(*)
from beijing_link a,
(select link_pid, geometry from beijing_link where rownum = 1) b
where sdo_relate(a.geometry, b.geometry,'mask=touch') = 'TRUE'
and a.link_pid != b.link_pid;

select count(*)
from beijing_link a,
(select link_pid, geometry from beijing_link where rownum = 1) b
where sdo_relate(a.geometry, b.geometry,'mask=anyinteract') = 'TRUE'
and a.link_pid != b.link_pid;

select count(*)
from beijing_link a,
(select link_pid, geometry from beijing_link where rownum = 1) b
where sdo_relate(a.geometry, b.geometry,'mask=coveredby') = 'TRUE'
and a.link_pid != b.link_pid;

6、sdo_within_distance两个对象距离在某范围内

select count(*)
from beijing_link a,
(select link_pid, geometry from beijing_link where rownum = 1) b
where sdo_within_distance(a.geometry, b.geometry,'distance=10,unit=km') = 'TRUE'
and a.link_pid != b.link_pid;

oracle空间索引的更多相关文章

  1. 在oracle中创建空间索引

    Oracle spatial可以方便的存储空间数据,大量的空间数据必需要使用空间索引去查询.在oracle中创建空间索引必需先建立元数据,否则无法创建索引.创建元数据的代码: insert into ...

  2. Oracle Spatial中的空间索引

    转自cryolite原文 Oracle Spatial中的空间索引 Oracle Spatial可对空间数据进行R-tree索引,每个空间图层(Spatial Layer)的空间索引元信息都可以在US ...

  3. Oracle Spatial分区应用研究之六:全局空间索引下按县分区与按省分区效率差异原因分析

    1.实验结论 全局空间索引下,不同分区粒度之所有效率会有不同,差异并不在于SDO_FILTER操作本身,而在于对于数据字典表的访问次数上: 分区越多.表上的lob column越多,对数据字典表的访问 ...

  4. Oracle Spatial 创建空间表、添加空间原表信息、添加删除空间索引

    一.创建空间表 创建一个空间表tbsvrc_buffer_t ,SQL如下: create table tbsvrc_buffer_t(  ID      VARCHAR2(50) not null, ...

  5. Oracle Spatial分区应用研究之五:不同分区粒度+本地空间索引效率对比

    1.实验目的 若使用本地空间索引,不同分区粒度将产生不同索引组织,其索引分区个数.大小.R-TREE树结构均不相同.那么,在什么分区粒度下的本地空间索引效率较高呢? 2实验数据 实验数据为全国2531 ...

  6. Oracle Spatial分区应用研究之四:不同分区粒度+全局空间索引效率对比

    1.实验目的 在实验之前先回答这样一个问题——对同一份数据使用不同的分区粒度,但均创建全局空间索引,问:它们的全局空间索引一致吗? 怎样算是一致的呢?R-TREE的树结构一致算一致吗?空间索引条目数及 ...

  7. oracle 创建空间索引

    1. 首先进行查询,判断数据是否已经建立相应的空间元数据 select * from user_sdo_geom_metadata t where t.table_name like '%表名%'; ...

  8. 简析将shp导入Oracle并利用geoserver将导入的数据发布

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.环境准备 1.1 软件准备 首先要安装有支持空间数据的Oracle ...

  9. oracle 空间数据库说明

    转:http://blog.csdn.net/jing_xin/article/details/4355642 由于最近弄一些空间数据,所以找了些oracle空间数据库的一些知识.下面是汇总: Ora ...

随机推荐

  1. Qt 网络模块如何使用?

    1.网络模块介绍 类名 说明 中文 QAbstractNetworkCache The interface for cache implementations 缓存实现的接口 QNetworkCach ...

  2. Nginx + uwsgi + django + websocket(dwebsocket)环境部署

    1.安装nginx(/export/servers/nginx/) 保证/export/servers/nginx/是nginx的安装目录 /export/servers/nginx/conf/dom ...

  3. JDBC各种数据库连接方式

    1)连接Oracle 8/8i/9i/10g/11g(thin模式) Class.forName("oracle.JDBC.driver.OracleDriver").newIns ...

  4. 前端日常常用git命令

    讲真,很早之前就想总结一下git常用的命令了,每次用着用着很多命令都记不住.而且我是英语渣包,有些单词慢慢靠背. git只是一个工具,我这写的只是适合我这种快速上手使用工具的小白,深究的请移步别处. ...

  5. 获取NVIDIA显卡的温度

    NVIDIA显卡在硬件上有温度传感器,可以感知显卡的运行环境.温度数据的获取,一般是通过调用NVIDIA的SDK的相关函数即可.SDK的下载的网址(https://developer.nvidia.c ...

  6. mysql字符串连接

    用SQL Server 连接字符串是用“+” 现在数据库用mysql, 写个累加两个字段值SQL语句居然不支持"+",郁闷了半天在网上查下,才知道mysql里的+是数字相加的操作, ...

  7. R语言︱非结构化数据处理神器——rlist包

    本文作者:任坤,厦门大学王亚南经济研究院金融硕士生,研究兴趣为计算统计和金融量化交易,pipeR,learnR,rlist等项目的作者. 近年来,非关系型数据逐渐获得了更广泛的关注和使用.下面分别列举 ...

  8. 使用jsoup抓取新闻信息

    1,jsoup简介 jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和 ...

  9. VxWorks 符号表

    符号表初始化           符号表用于建立符号名称.类型和值之间的关系.其中,名称为null结尾的任意字符串:类型为标识各种符号的整数:值为一个字符指针.符号表主要用来作为目标模块加载的基础,但 ...

  10. 从Git到GitHub,详细教程

    众所周知,一个稍微有点规模的项目,都不可能是一个人单打独斗完成的(能完成的大神别打我),所以,一个高效的项目团队就需要一个NB的工具来进行有效的交流(曾经有人问我企鹅不就可以吗,我竟无言以对),今天就 ...