Oraclespatial和STGeometry的简要对比.ppt
,Oracle Spatial 简介,P,art,1,Oracle Spatial 概述,1、是Oracle公司推出的空间数据库组件2、通过Oracle数据库系统存储和管理空间数据3、提供函数完成(1)直接访问Oracle数据库的空间数据(2)建立空间索引(3)进行空间数据分析 等复杂的GIS功能,Oracle Spatial 概述,Oracle Spatial 概述,Oracle从9i开始对空间数据提供了较为完备的支持。Oracle 10g又加入了一些新的功能Oracle 11g提供了对三维空间数据几何模型(如Point Cloud、TIN)的R树空间索引的支持,Oracle Spatial主要通过:元数据表(USER_SDO_GEOM_METADATA);空间数据字段(SDO_GEOMETRY字段);空间索引来管理空间数据;并提供一系列空间查询和空间分析的函数Oracle Spatial使用空间字段SDO_GEOMETRY存储空间数据,用元数据表来管理具有SDO_GEOMETRY字段的空间数据表,并采用R树索引和四叉树索引技术来提高空间查询和空间分析的速度。,Oracle Spatial 数据存储管理,元数据表(USER_SDO_GEOM_METADATA)内容包括数据表名称、空间字段名称、空间数据的坐标范围、坐标参考信息以及坐标维数说明等信息。该表告知用户Oracle数据库中是否有Oracle Spatial的空间数据信息。,Oracle Spatial 元数据表说明,元数据视图的基本定义为:(TABLE_NAME VARCHAR2(32),COLUMN_NAME VARCHAR2(32),DIMINFO MDSYS.SDO_DIM_ARRAY,SRID NUMBER);,Oracle Spatial 元数据表定义,P,art,2,Oracle Spatial 建库,方法一:脱离第三方平台,采用Oracle数据库SQL语句;方法二:利用第三方平台进行建库(如ArcGIS),Oracle Spatial 空间数据库建设流程,Oracle Spatial 空间数据库建设流程,1、创建关系表CREATE TABLE cola_markets(mkt_id NUMBER PRIMARY KEY,name VARCHAR2(32),shape SDO_GEOMETRY);,Oracle Spatial 空间数据库建设流程,2、填写空间元数据INSERT INTO USER_SDO_GEOM_METADATAVALUES(cola_markets,shape,MDSYS.SDO_DIM_ARRAY(-20X20 gridMDSYS.SDO_DIM_ELEMENT(X,0,20,0.005),MDSYS.SDO_DIM_ELEMENT(Y,0,20,0.005),NULL-SRID);,Oracle Spatial 空间数据库建设流程,3、创建空间索引CREATE INDEX cola_spatial_idxON cola_markets(shape)INDEXTYPE IS MDSYS.SPATIAL_INDEX;,4、插入空间数据,5、空间数据查询及分析,Oracle Spatial 第三方平台建库,1、利用ArcCatalog的数据库直连功能(10.1以上版本支持),进行数据库连接2、通过arccatalog提供的建表功能创建包含SDO_GEOMETRY列的数据表、或使用Import等工具导入shp等数据,选择为SDO_GEOMETRY 即可后续的元数据配置,图层验证等操作全部委托arcgis的内置功能完成。,Oracle Spatial 第三方平台建库,P,art,3,Oracle Spatial 函数,Oracle Spatial 空间查询和分析函数,几何对象的关系(True/False):relate,within_distance验证:validate_geometry_with_context,validate_layer_with_context单个对象操作:Sdo_arc_densify,sdo_buffer,sdo_centroid,sdo_convexhull Sdo_area,sdo_length,sdo_max_mbr_ordinate,Sdo_min_mbr_ordinate,Sdo_mbr,sdo_pointonsurface两个对象:sdo_distance,sdo_difference,sdo_intersection,sdo_union,sdo_xor,Thank You,