空间图层: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基本操作,作者:
快乐自己做主
- 大小: 8 KB
分享到:
相关推荐
如何用SQL语句创建Oracle Spatial的图层-MyGIS软件工作室-James MapInfo技术论坛.txt
Oracle Spatial空间数据在ArcSDE中的图层注册.pdf
该平台采用面向实体的空间数据模型,突破了以图层为基础的空间数据处理模式,实现了跨图幅计算,较好地实现了第四代GIS所提出的面向实体的空间数据组织、统一的海量存储和分析处理、有效的分布式空间数据计算等目标...
基于O racle Spatial的GIS图层信息实时共享的实现方法.pdf
在Oracle 10g spatial可以存储管理矢量数据的基础上,研究栅格图像的存储与管理,分析了栅格数据、元数据、波段、图层、坐标系、物理存储结构等几个相关概念,探讨了存储管理中分块、索引、影像金字塔、地理参照等...
5.2 循序渐进学习ORACLE SPATIAL在MAPX中的应用 36 5.2.1 oralce服务器的安装 36 5.2.2 准备由Oracle Spatial存储的图层文件 36 5.2.3 Easyloader上载工具 36 5.2.4 图层信息在Oracle中的存储结构 38 5.2.5用程序...
5.2 循序渐进学习ORACLE SPATIAL在MAPX中的应用 36 5.2.1 oralce服务器的安装 36 5.2.2 准备由Oracle Spatial存储的图层文件 36 5.2.3 Easyloader上载工具 36 5.2.4 图层信息在Oracle中的存储结构 38 5.2.5用程序...
的方案——关系表 SDO_GEOMETRY对象类型 每个图层再被分解为若干 几何实体——每一行记录 几何实体又被分解成点、 线、面等基本元素 Oracle中的栅格数据存储 GeoRaster 存储、索引、查询、分析空间GeoRaster栅格数据...
数据存储和控制都在ctl一个文件中, 经常用到的还有选项 -i id_colum指定id序列列,默认是id,即作为生成数据的唯一性标志,此列是不可能重复的,一般作为索引列,-s **指定生成srid,默认是null,目前一般是8307吧,...
新建表、打开表、打开ORACLE SPATIAL图层、打开ODBC数据,打开、保存、关闭GST数据集 <br>2.增加、修改、删除文本类型和符号类型的注释(annotation) <br>3.创建点、线、折线、面和文本对象 <br>4.图元的...
Geoserver连Oracle Spatial 52 GeoServer架构浅谈 53 Geoserver发布地图无法显示问题 57 WebGIS相关的OpenGIS规范 58 geoserver中地图以外的区域以自定义图片填充 62 怎样修改 geoServer 的用户名密码 65 GeoServer...