oracle空间索引
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空间索引的更多相关文章
- 在oracle中创建空间索引
Oracle spatial可以方便的存储空间数据,大量的空间数据必需要使用空间索引去查询.在oracle中创建空间索引必需先建立元数据,否则无法创建索引.创建元数据的代码: insert into ...
- Oracle Spatial中的空间索引
转自cryolite原文 Oracle Spatial中的空间索引 Oracle Spatial可对空间数据进行R-tree索引,每个空间图层(Spatial Layer)的空间索引元信息都可以在US ...
- Oracle Spatial分区应用研究之六:全局空间索引下按县分区与按省分区效率差异原因分析
1.实验结论 全局空间索引下,不同分区粒度之所有效率会有不同,差异并不在于SDO_FILTER操作本身,而在于对于数据字典表的访问次数上: 分区越多.表上的lob column越多,对数据字典表的访问 ...
- Oracle Spatial 创建空间表、添加空间原表信息、添加删除空间索引
一.创建空间表 创建一个空间表tbsvrc_buffer_t ,SQL如下: create table tbsvrc_buffer_t( ID VARCHAR2(50) not null, ...
- Oracle Spatial分区应用研究之五:不同分区粒度+本地空间索引效率对比
1.实验目的 若使用本地空间索引,不同分区粒度将产生不同索引组织,其索引分区个数.大小.R-TREE树结构均不相同.那么,在什么分区粒度下的本地空间索引效率较高呢? 2实验数据 实验数据为全国2531 ...
- Oracle Spatial分区应用研究之四:不同分区粒度+全局空间索引效率对比
1.实验目的 在实验之前先回答这样一个问题——对同一份数据使用不同的分区粒度,但均创建全局空间索引,问:它们的全局空间索引一致吗? 怎样算是一致的呢?R-TREE的树结构一致算一致吗?空间索引条目数及 ...
- oracle 创建空间索引
1. 首先进行查询,判断数据是否已经建立相应的空间元数据 select * from user_sdo_geom_metadata t where t.table_name like '%表名%'; ...
- 简析将shp导入Oracle并利用geoserver将导入的数据发布
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.环境准备 1.1 软件准备 首先要安装有支持空间数据的Oracle ...
- oracle 空间数据库说明
转:http://blog.csdn.net/jing_xin/article/details/4355642 由于最近弄一些空间数据,所以找了些oracle空间数据库的一些知识.下面是汇总: Ora ...
随机推荐
- 1.2 decimal模块
>>> 0.1 + 0.1 +0.1 == 0.3 False >>> >>> print(0.1 + 0.1 + 0.1) 0.30000000 ...
- 上帝之眼APP——实时定位监控、即时通讯
项目地址 https://github.com/guoyaohua/GodsEYE 开发环境 Android studio 2.3.1 极光推送IM SDK 百度鹰眼SDK 背景介绍 定位监控系统,不 ...
- Acm弱校奋斗史
我也是来自弱校的,没有教练,甚至老师都不理我们这种Acmer.看完这篇文章感触颇深. 原文链接 http://acmicpc.info/archives/369 原文 题解:还记得2年前的一个晚上,我 ...
- nyoj358 取石子(五) 斐波那契博弈
我写代码找的规律:如果这个n是斐波那契数,那么它是P态,如2,3,5,8..... 找规律的代码: #include <cstdio> #include <cmath> #in ...
- Web开发框架推导
本文欲回答这样一个问题:在 「特定环境 」下,如何规划Web开发框架,使其能满足 「期望 」? 假设我们的「特定环境 」如下: 技术层面 使用Java语言进行开发 通过Maven构建 基于Spring ...
- Linux的内核和权限
1.内核包括的子系统是 : 进程管理系统 . 内存管理系统 . I/O管理系统 和文件管理系统 等四个子系统. 2.Linux系统中某个可执行文件属于root并且有setid,当一个普通用户 mik ...
- 简化的CDN架构分析
CDN架构的设计目标是通过复制系统资源(即Web服务器)的方式来获得高性能和高扩展性,为了能确保在海量内容下可以稳定提供高性能的服务.系统资源的复制可以在本地和地理两个尺度上进行.如果是本地复制则响应 ...
- iOS.Animations.by.Tutorials.v2.0汉化
翻译自:iOS.Animations.by.Tutorials.v2.0 前五章将向你介绍动画API-UIKit框架.这个API是专门设计来帮助你轻松轻而易举的为视图控件赋予生命,同时避免了核心动画的 ...
- dojo省份地市级联之省份Dao实现类(五)
dojo省份地市级联之省份Dao实现类 ProvinceDaoImpl.java: /** * */ package com.you.dao.impl; import java.util.ArrayL ...
- ios学习笔记(一)Windows7上使用VMWare搭建iPhone开发环境
我们都知道开发iPhone等ios平台的移动应用时需要使用Mac本,但是Mac本都比较昂贵,所以我们可以采用Windows7上利用VMWare安装Mac操作系统的方法来模拟ios开发环境,达到降低成本 ...