空间图层:Oracle spatial将一张表中单个SDO_GEOMETRY列上的所有对象作为一个空间图层。(例如,customers表中location列内的所有几何对象被作为一个空间图层进行处理。)
描述一个图层的元数据信息包括空间范围和数据采用的坐标系统。或者,换句话说,要想执行与每个空间图层(换句话说,一张表中某个特定的SDO_GEOMETRY列的所有几何对象)有关的验证、索引创建已经空间查询等操作,需要为每个图层指定合适的元数据。它包括以下信息:
- 1. 维度:the number of dimensions
- 2. 每个维度的界限:the bounds for each dimension
- 3. 每个维度的容差:the tolerance for each dimension。例如,如果tolerance指定为0.5,两个点A和B之间的距离如果小于0.5,那么点A和点B就被认为处于同一位置。一般来说,tolerance值得单位与维度界限的单位相同,但是在geodetic坐标系中,tolerance值表示地球表面上两个点之间的最短距离,其单位总是米(因为Oracle需要tolerance在不同维度上具有相同的单位),通常设为0.1或者0.5。
- 4. 坐标系统,有三种类型的坐标系统:
i) Geodetic坐标系统:以角度表示的经纬度,Oracle Spatial支持的geodetic坐标系在MDSYS.GEODETIC_SRIDS视图中可以查到;
ii) 投影坐标系:笛卡尔坐标系统
iii) 本地坐标系:
Oracle Spatial中,通过查看USER_SDO_GEOM_METADATA试图中的DIMINFO属性,可以知道特定图层信息,包括图层每一维度的信息,包括维度的名称(如经度'Latitude')、维度的上下限以及维度的tolerance。
在Oracle Spatial基本操作中对此有比较详细的介绍,借用一下快乐自己做主的图(thanks you:):
USER_SDO_GEOM_METADATA元数据视图中,每一条记录描述了一个Oracle Spatial空间图层的信息,包括图层的空间信息(空间坐标范围)和空间坐标系统(SRID)。
因此,创建一个带有地理信息的数据库表后,还需要将其元数据信息记录在元数据表中。
例如customers表中会有字段记录每个顾客的地址信息,在创建customer表后,还要在USER_SDO_GEOM_METADATA视图中插入该表地理相关的元数据,该视图是可修改的,基于MDSYS schema的SDO_INDEX_METADATA_TABLE表。
- INSERT INTO user_sdo_geom_metadata VALUES (
- 'CUSTOMERS',
- 'LOCATION',
- SDO_DIM_ARRAY(
- SDO_DIM_ELEMENT(
- 'LONGITUDE',
- -180,
- 180,
- 0.5
- ),
- SDO_DIM_ELEMENT(
- 'LATITUDE',
- -90,
- 90,
- 0.5
- )
- ),
- 8307
- );
为空间图层设置元数据信息使得我们可以进行验证、空间索引、空间查询和空间分析等操作。此外为空间图层设置元数据也使得Oracle中地图可视化和网络/路径分析等操作成为可能。
通过空间操作符(如SDO_WITHIN_DISTANCE)进行空间查询时需要有空间索引(不过有些空间处理函数可能不需要空间索引,例如叠加分析),如果发现不能为geometry类数据列创建空间索引,错误表现为:
- ERROR at line 1:
- ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
- ORA-13203: failed to read USER_SDO_GEOM_METADATA view
- ORA-13203: failed to read USER_SDO_GEOM_METADATA view
- ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 10
- ORA-06512: at line 1
那是因为你没有为它在USER_SDO_GEOM_METADATA中设置元数据。
在空间索引创建时,Oracle会自动检查每个geometry对象的SDO_SRID是否符合USER_SDO_GEOM_METADATA元数据视图中为相应空间图层指定的坐标系。如何不符合,会抛出ora-13365错误。
分享到:
相关推荐
本文介绍了如何使用 Oracle Spatial 对 ArcSDE 中的 SDO_GEOMETRY 类型数据进行空间操作,包括建立 SDO_GEOMETRY 类型图层、利用 ArcSDE 导入空间数据、空间查询等步骤。通过这些步骤,可以实现对空间数据的存储、...
通过以上步骤,我们可以成功地使用SQL语句在Oracle Spatial中创建并管理空间图层。这种方法不仅能够高效地处理大量的地理空间数据,还提供了强大的查询功能,适用于各种地理信息系统应用场合。希望本文能帮助读者更...
Oracle Spatial的数据组织结构是一个层次结构,包括空间图层、几何图形、元素。空间图层是由若干几何图形构成,几何图形又由若干元素构成。 Oracle Spatial提供了一个强大的事务机制,包括元数据管理机制、空间...
它集成在Oracle数据库中,提供了一套完整的空间数据管理解决方案,包括数据导入、导出、索引构建和查询优化。 二、空间数据存储 Oracle Spatial使用SDO_GEOMETRY数据类型来存储空间对象,该数据类型包含了对象的...
在Java开发环境中,Oracle Spatial 提供了对应的jar包,如 `sdoutl.jar`、`sdoapi.jar` 和 `sdotype.jar`,以便开发者能够集成空间功能到他们的应用程序中。 `sdoutl.jar`:这是 Oracle Spatial 的输出库,包含了...
Oracle Spatial 是 Oracle 数据库的一个重要组件,专门用于处理地理空间数据和执行空间分析。这个官方文档是英文版,对于非英语母语者来说可能阅读起来有些困难,但它是理解 Oracle Spatial 功能和操作的关键资源。...
在本文中,我们将讨论如何使用Oracle Spatial和MapX来实现GIS图层信息的实时共享。 GIS数据的特点: GIS数据是GIS系统中最基本的部分。利用计算机来提取、处理数据是GIS的基本功能。GIS处理的数据分为两类:一类...
在地图展示和可视化方面,Oracle Spatial与Oracle的其他组件(如Oracle MapViewer或Oracle GeoRaster)结合,可以创建交互式地图,进行地图图层管理,以及对空间数据进行视觉表达。 在实际应用中,Oracle Spatial...
在实际工作中,为了实现Oracle Spatial空间数据与其他格式空间数据(如ArcGIS、MapInfo、AutoCAD等)的互操作,通常需要将Oracle Spatial数据转换成ArcGIS兼容的格式。ArcGIS是一个广泛使用的GIS软件平台,它提供...
在“oraclespatial.pdf”中,你可能会找到以下关键知识点: 1. **Oracle Spatial 概述**:这部分会介绍 Oracle Spatial 的核心功能,包括支持的空间数据类型、空间索引和查询语言(如 SQL 函数和操作符)。 2. **...
"Oracle Spatial 在构建多源地学空间数据库中的应用" 一、Oracle Spatial 概述 Oracle Spatial 是 Oracle 公司推出的一个存储和处理空间数据的组件,它能够快速储存、提取和分析空间数据。Oracle Spatial 由多个...
在实际应用中,Oracle Spatial允许用户创建空间图层,每个图层可以包含不同类型的几何体,这些几何体拥有共同的属性集合。例如,一个图层可能包含地形特征,另一个图层描述人口分布,还有一个图层记录交通网络。每个...
### Oracle Spatial与ArcSDE空间数据上载及应用比较 #### 引言 在地理信息系统(GIS)领域,Oracle Spatial与ArcSDE是目前较为流行的两种利用关系型数据库存储和管理空间数据的商用软件。随着GIS技术的发展,空间...
在Oracle Spatial中,MapInfo的空间数据被转化为一系列Oracle表,每个MapInfo文件对应一个同名的Oracle表。这些表不仅包含了MapInfo文件的原始属性数据,还添加了Oracle Spatial特有的字段,如MI-STY、MI-GEOM和MI-...
Oracle Spatial是Oracle公司与MapInfo公司合作开发的一款强大的空间数据管理工具,它整合在Oracle数据库中,提供了高效的空间数据存储、访问和分析功能。Oracle Spatial利用SDO_GEOMETRY字段来存储空间数据,确保了...
文章中提到的“***空间数据管理方法”指的是在.NET框架中使用*** (***)来管理Oracle Spatial中的空间数据。这种方法允许开发者利用.NET环境编写代码来操作Oracle数据库中的空间数据,而不必依赖Oracle数据库的专有...
Oracle Spatial是一种先进的空间数据处理技术,它将空间数据和属性数据无缝集成在关系型数据库中,提供了高效的数据存储、检索、修改和查询功能。 在空间数据组织模型方面,Oracle Spatial采用对象-关系模型,使用...
Oracle Spatial支持对象-关系模型,允许将空间数据与非空间属性数据集成在同一数据库中。 ArcSDE(Spatial Data Engine)是Esri公司开发的一种中间件,用于在关系数据库中存储和管理GIS(Geographic Information ...
- **简单空间分析**: 在.NET环境下,基于MapX和Oracle 10g Spatial开发的空间数据库管理系统中,实现了简单的空间分析功能,例如查询特定区域内的地理特征、计算不同地理实体之间的距离等。 #### 三、总结 MapX与...
Oracle Spatial 是Oracle数据库的一个扩展模块,专门用于处理和管理地理空间数据。在“海上数据电子图形中的Oracle Spatial构建”这个主题中,它被应用于管理和分析与海洋相关的大量数据,如海图信息、海航信息、...