好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

OracleGIS教程(PPt)OracleSpatial.ppt

33页
  • 卖家[上传人]:桔****
  • 文档编号:605244900
  • 上传时间:2025-05-20
  • 文档格式:PPT
  • 文档大小:277.49KB
  • / 33 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Oracle Spatial是Oracle公司推出的,空间数据库组件,,通过Oracle数据库系统存储和管理空间数据Oracle从9i开始对空间数据提供了较为完备的支持Oracle Spatial简介,由于Oracle Spatial本身是ORACLE数据库的一个特殊的部分,因此可以用ORACLE提供的程序接口来对Oracle Spatial管理的空间数据进行操作目前,ORACLE数据库主要提供两种接口方式对其数据进行存取:,ORACLE,提供的面向,C,语言程序员的编程接口,OCI(Oracle Call Interface,,简称,OCI);,用,ORACLE,本身所提供的,OLE,对象(,Oracle Objects for OLE,,以下简称,OO4O),来快速访问有关数据库Oracle Spatial主要通过,元数据表,、,空间数据字段,(即SDO_GEOMETRY字段)和,空间索引,来管理空间数据,并在此基础上提供一系列,空间查询和空间分析,的函数,让用户进行更深层次的GIS应用开发Oracle Spatial使用空间字段SDO_GEOMETRY存储空间数据,用元数据表来管理具有SDO_GEOMETRY字段的空间数据表,并采用R树索引和四叉树索引技术来提高空间查询和空间分析的速度。

      元数据表说明,Oracle Spatial的元数据表存储了有空间数据的,数据表名称,、,空间字段名称,、,空间数据的坐标范围,、,坐标参考信息,以及,坐标维数说明,等信息用户必须通过元数据表才能知道ORACLE数据库中是否有Oracle Spatial的空间数据信息一般可以通过,元数据视图,(USER_SDO_GEOM_METADATA)访问元数据表元数据视图的基本定义为:,(,TABLE_NAME VARCHAR2(32),COLUMN_NAME VARCHAR2(32),DIMINFO MDSYS.SDO_DIM_ARRAY,SRID NUMBER,);,其中,TABLE_NAME为含有空间数据字段的表名,COLUMN_NAME为空间数据表中的空间字段名称,DIMINFO是一个按照空间维顺序排列的SDO_DIM_ELEMENT对象的动态数组,SRID则用于标识与几何对象相关的空间坐标参考系SDO_DIM_ELEMENT对象的定义如下所示:,Create Type SDO_DIM_ELEMENT as OBJECT(,SDO_DIMNAME VARCHAR2(64),SDO_LB NUMBER,SDO_UB NUMBER,SDO_TOLERANCE NUMBER);,其中,,SDO_DIMNAME,是空间维名称,,SDO_LB,为该空间维的左下角坐标,,SDO_UB,为该空间维的右上角坐标,,SDO_TOLERANCE,为几何对象的表示精度。

      CREATE TABLE GEOD_CITIES(,LOCATION MDSYS.SDO_GEOMETRY,CITY VARCHAR2(42),STATE_ABRV VARCHAR2(2),POP90 NUMBER,RANK90 NUMBER);,例子,INSERT INTO,USER_SDO_GEOM_METADATA,(,TABLE_NAME,COLUMN_NAME,DIMINFO,SRID,),VALUES(GEOD_CITIES,LOCATION,MDSYS.SDO_DIM_ARRAY,(MDSYS.SDO_DIM_ELEMENT(LONG,-180.0,180.0,0.0000005),MDSYS.SDO_DIM_ELEMENT(LAT,-90.0,90.0,0.0000005),),NULL);,空间字段解析,Oracle Spatial的空间数据都存储在空间字段SDO_GEOMETRY中,理解SDO_GEOMETRY是编写Oracle Spatial接口程序的关键SDO_GEOMETRY是按照OpenGIS规范定义的一个对象,其原始的创建方式如下所示CREATE TYPE sdo_geometry AS OBJECT(,SDO_GTYPE NUMBER,SDO_SRID NUMBER,SDO_POINT SDO_POINT_TYPE,SDO_ELEM_INFO MDSYS.SDO_ELEM_INFO_ARRAY,SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY);,该对象由五个部分组成,下面分别介绍这五个部分的定义方法。

      1)SDO_GTYPE,SDO_GTYPE,是一个,NUMBER,型的数值,用来定义存储对象的类型SDO_GTYPE,是一个,4,个数字的整数,其格式为,dltt,,其中,d,表示几何对象的维数;,l,表示三维线性参考系统中的线性参考值,当,d,为,3,维或者,4,维时需要设置该值,一般情况下为空;,tt,为几何对象的类型,,Oracle Spatial,定义了,7,种类型的几何类型,目前,,tt,使用了,00,到,07,(包括一种用户自定义类型),另外,,08,到,99,是,Oracle Spatial,保留的数字,以备将来几何对象扩展所用2)SDO_SRID,SDO_SRID,也是一个,NUMBER,型的数值,它用于标识与几何对象相关的空间坐标参考系如果,SDO_SRID,为空(,null,),则表示没有坐标系与该几何对象相关;如果该值不为空,则该值必须为,MDSYS.CS_SRS,表中,SRID,字段的一个值,在创建含有几何对象的表时,这个值必须加入到描述空间数据表元数据的,USER_SDO_GEOM_METADATA,视图的,SRID,字段中Oracle Spatial,规定,一个几何字段中的所有几何对象都必须为相同的,SDO_SRID,值。

      3)SDO_POINT,SDO_POINT,是一个包含,X,Y,Z,数值信息的对象,用于表示几何类型为点的几何对象如果,SDO_ELEM_INFO,和,SDO_ORDINATES,数组都为空,则,SDO_POINT,中的,X,Y,Z,为点对象的坐标值,否则,,SDO_POINT,的值可以忽略(用,NULL,表示)Oracle Spatial,强烈建议用,SDO_POINT,存储空间实体为点类型空间数据,这样可以极大的优化,Oracle Spatial,的存储性能,提高查询效率4)SDO_ELEM_INFO,SDO_ELEM_INFO是一个可变长度的数组,每3个数作为一个元素单位,用于解释坐标是如何存储在SDO_ORDINATES数组中的本文把组成一个元素的3个数称为3元组一个3元组包含以下3部分的内容:,l,SDO_STARTING_OFFSET,SDO_STARTING_OFFSET 表明每个几何元素的第一个坐标在SDO_ORDINATES数组中的存储位置它的值从1开始,逐渐增加l,SDO_ETYPE,SDO_ETYPE 用于表示几何对象中每个组成元素的几何类型当它的值为1,2,1003和2003时,表明这个几何元素为简单元素。

      如果SDO_ETYPE为1003,表明该多边形为外环(第一个数为1表示外环),坐标值以逆时针存储;如果SDO_ETYPE为2003,表明该多边形为内环(第一个数为2表示内环),坐标值以顺时针存储当SDO_ETYPE为4,1005和2005时,表明这个几何元素为复杂元素它至少包含一个3元组用以说明该复杂元素具有多少个几何简单元素同样,1005表示多边形为外环,坐标值以逆时针存储;2005表示多边形为内环,坐标值以顺时针存储l,SDO_INTERPRETATION,SDO_INTERPRETATION具有两层含义,具体的作用由SDO_ETYPE是否为复杂元素决定如果SDO_ETYPE是复杂元素(4,1005和2005),则SDO_INTERPRETATION表示它后面有几个子3元组属于这个复杂元素如果SDO_ETYPE是简单元素(1,2,1003和2003),则SDO_INTERPRETATION表示该元素的坐标值在SDO_ORDINATES中是如何排列的需要注意的是,对于复杂元素来说,组成它的子元素是连续的,一个子元素的最后一个点是下一个子元素的第一点最后一个子元素的最后一个坐标要么与下一个元素的SDO_STARTING_OFFSET值减1所对应的坐标相同,要么是整个SDO_ORDINATES数组的最后一个坐标。

      5)SDO_ORDINATES,SDO_ORDINATES,是一个可变长度的数组,用于存储几何对象的真实坐标,该数组的类型为,NUMBER,型,它的最大长度为,1048576,SDO_ORDINATES,必须与,SDO_ELEM_INFO,数组配合使用,才具有实际意义SDO_ORDINATES,的坐标存储方式由几何对象的维数决定,如果几何对象为三维,则,SDO_ORDINATES,的坐标以,X1,Y1,Z1,X2,Y2,Z2,.,的顺序排列,如果几何对象为二维,则,SDO_ORDINATES,的坐标以,X1,Y1,X2,Y2,.,顺序排列insert into BJPIC.GEOD_COUNTRY values(20,MDSYS.SDO_GEOMETRY(,2007,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1,53,1003,1),MDSYS.SDO_ORDINATE_ARRAY,(109.633316,18.113594,109.142250,18.347574,108.855591,18.499420,108.764137,19.077269,108.780563,19.204344,108.888641,19.312555,109.077347,19.420931,109.401825,19.701113,109.623779,19.676178,109.645920,19.752447,109.753990,19.930529,109.861320,19.918058,110.119545,。

      Oracle Spatial空间索引技术,Oracle Spatial,提供了,R,树索引和四叉树索引两种索引机制来提高空间查询和空间分析的速度用户需要根据空间数据的不同类型创建不同的索引,当空间数据类型比较复杂时,如果选择索引类型不当,将使,Oracle Spatial,创建索引的过程变得非常慢CREATE INDEX territory_idx ON territories(territory_geom),INDEXTYPE IS MDSYS.SPATIAL_INDEX;,创建R树索引,CREATE INDEX ROADS_FIXED ON ROADS(SHAPE)INDEXTYPE IS MDSYS.SPATIAL_INDEX,PARAMETERS(SDO_LEVEL=8);,创建四叉树索引,空间数据的导入,Imp,命令备份文件(,dmp,文件),imp,bjpic,/bjpic2003 file=,proj,_data.,dmp,full=y,Sqlldr,控制文件(,ctl,文件),sqlldr,system/manager,geod,_country.,ctl,控制文件可由,shp2sdo,工具生成,Sql,命令,insert,语句,要对Oracle Spatial进行操作,首先需要建立与Oracle 数据库的连接,可以用以下语句完成对数据库的连接工作。

      OSession m_session;/定义oo4o会话句柄,ODatabase m_database;/定义数据库对象,m_session.Open();/打开一个会话,m_database.Open(m_session,dbaseN。

      点击阅读更多内容
      相关文档
      【全国硕士研究生入学统一考试政治】2020年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2015年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2010年考研政治真题.docx 【全国硕士研究生入学统一考试政治】1996年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2001年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2016年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2000年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】1997年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2007年考研政治真题.doc 【全国硕士研究生入学统一考试政治】1997年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2004年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2003年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2019年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2009年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2001年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2021年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2014年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2018年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2008年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2011年考研政治真题.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.