经过长时间学习Oracle Spatial几何结构,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西。由于传统的 GIS 技术已达到其本身可伸缩性和可*性的极限,用户越来越多地转向以数据库为中心的空间计算。Oracle Spatial将空间过程和操作直接转移到数据库内核中,从而提高了性能和安全性。Oracle Spatial从1995年ORACLE 7.1.6开始发展到2003年的10G版本,空间数据处理能力越来越强大。
Oracle Spatial将所有的地理空间数据类型(矢量、栅格、网格、影像、网络、拓扑)统一在单一、开放的、基于标准的数据管理环境中,这就减少了管理单独、分离的专用系统的成本、复杂性和开销。Oracle Spatial不但具有传统GIS的所有特性,,而且还具有关系数据库的特性,这些特性扩展了应用程序开发人员的工作范围并提供了他们的生产率,因而能支持更广泛的应用程序并提高性能主要表现在:
1) Oracle Spatial几何结构和空间参照
Oracle Spatial 支持三种基本的几何形状,这些几何形状可分别用于表示那些通常构成空间数据库的特征,如道路、管理边界、公共设施等。这些空间基础元素包括:
◆点和点簇:点可以表示建筑、消防栓、电线杆、钻井、货车车厢或移动的交通工具等位置。
◆线和线串:线可以表示道路、铁路线、公用设施管线或故障线等。
◆多边形和带孔的复杂多边形:多边形可以表示城市、街区、河漫滩或油田和天然气田的轮廓。
带孔的多边形可以表示由一片沼泽环绕的一小块土地。为了有效地集成和表示空间信息,Oracle Spatial 提供了丰富的工具来管理坐标系统和投影。支持 950 多种常用的制图坐标系统,而且用户还可以定义新的坐标系统。Oracle Spatial 还支持在不同的坐标系统间任意转换数据。这些转换一次可以在一个几何级上或者整个图层上进行。
2) 空间索引:R-tree
为了优化空间查询的性能,Oracle Locator 为关系数据库提供了空间索引功能。Oracle Locator 提供 R-tree 索引创建功能,该功能生成和存储几何结构的近似值作为索引。R-tree 索引易于创建和使用 — 几乎不需要调整即可获得最佳性能。可以在空间数据的两个、三个或四个维度上创建 R-tree 索引。
3) 空间操作符
各种几何特征的交互作用可以通过使用比较操作符来确定,如 contains、covers 和 anyinteract(任何交互作用)。这样就可以答复类似下列的请求:“列出这条铁道线穿过的所有校区”或“找出这个城市中所有的花店”
4) 基于函数的索引支持
现在不需要将位置信息显式地存储为 SDO_GEOMETRY 类型的列即可在关系属性上执行空间查询。用户可以对存储在关系列(例如经度和纬度)中的空间数据上创建空间索引。然后用户可以在这些关系列上调用空间操作符,而无需创建一个 SDO_GEOMETRY 列。
5) 大地坐标支持
就地表测量而言,无论坐标系统是什么,空间函数、操作符和公用程序都提供正确的结果。距离、面积和角度等单位都获得了全面的支持。
6) 空间索引的分区支持
空间索引可以根据分区表进行分区。对空间数据分区并使用分区的本地索引,可以为大型数据集上的查询以及并发查询与更新提供性能增益。它还使索引的维护更加容易。
7) 并行创建空间索引
索引创建可以被细分成能并行执行的更小的任务,以便利用未使用的硬件 (CPU) 资源。对于某些空间数据库以及索引类型和数据来说,并行索引创建能充分提高索引构建性能并显著节约时间。
8) 线性参照支持
Oracle Spatial 将“测量”信息存储为 Oracle Spatial几何结构的一部分。此特性对于线性联网和动态分割应用程序很关键,这些应用程序常见于互联网街道路径搜索、运输、公用设施和电信网络以及管线管理。
9) 空间聚集
空间聚集函数概括了与几何对象相关的 SQL 查询结果。空间聚集函数返回类型为 SDO_GEOMETRY 的几何对象。空间聚集的使用提高了性能,降低了底层代码的复杂性。
【编辑推荐】