摘自:Oracle Spatial for Oracle Database 11g
tolerance与几何体维度有关,每个空间图层的维度信息都记录在Oracle的元数据表中,通过USER_SDO_GEOM_METADATA视图中DIMINFO属性指定特定图层的每一维度的信息,包括维度的名称(如经度'Latitude')、维度的上下限以及每个维度的tolerance。
如下图:
简单的讲,Oracle spatial中tolerance决定了一个空间几何体是否有意义。
- 有两个空间几何体A和B,A是多边形,B是点。A和B之间的距离是d,如果d小于tolerance,B则被认为是最A的外边界上,如果d>=tolerance,A和B则被认为是disjoint的,也就是不相交的;
- 如果p和s的垂直距离(或水平距离)小于tolerance,则p和s被认为是两个重复的顶点,oracle spatial不允许一个几何体内有两个重复顶点,所以几何体A会被认为是无效的。如果垂直距离(或水平距离)大于等于tolerance,顶点就被认为是可区分的,几何体A也就被认为是一个有效的oracle spaital几何体。
作为一个通用规则,tolerance的值应该被设置为你的应用中的最小可区分距离,大多数应用中这个距离对应着两个独立坐标值之差的一半。例如如果你的应用中最靠近的两个点某个维度的坐标值分别为0.1和0.2,你就可以将tolerance设为 (0.2-0.1)/2 = 0.05。这确保了任意两个点都是可区分的。注意tolerance与坐标值的单位相同。
这个技巧可直接用在本地坐标系统(CAD/CAM应用中)和投影坐标系统中,但是对以地球表面建模的大地坐标系统(Geodetic)来说,两个不同位置经度差和纬度差与它们之间的实际距离并不一致。因此,大地坐标系统中tolerance的单位为米(虽然坐标单位为角度)。
有些空间函数在计算时可以额外指定一个tolerance。如果geometry列的数据类型是ST_GEOMETRY及其子类,tolerance默认为0.005;如果是SOD_GEOMETRY,Oracle将从USER_SDO_GEOM_METADATA视图中获得tolerance。
几何体的验证函数:
在进行空间查询时Oracle是不会主动验证的,因为性能代价太高了。
Oracle Spatial提供了两个验证函数(VALIDATE_GEOMETRY_WITH_CONTEXT和VALIDATE_LAYER_WITH_CONTEXT)以保证几何体数据的合法性。前者对单个的几何体进行验证,后者对一个表中的几何体进行验证。如果几何体有问题会返回一个错误字符串(例如坐标值超出范围)或者'FALSE',如果合法则返回'TRUE'。
这类函数使用tolerance判断一个geometry是否合法。tolerance有两种形式,一种是数字值,一种是DIMINFO对象值,后者可以在多个空间维度规定不同的tolerance,以及空间范围。
SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT
(
geometry IN SDO_GEOMETRY,
tolerance IN NUMBER
) RETURN VARCHAR2;
SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT
(
geometry IN SDO_GEOMETRY,
diminfo IN SDO_DIM_ARRAY
) RETURN VARCHAR2;
除了tolerance,验证标准还包括几何体是否与SDO_GTYPE类型一致,是否超出范围
- 大小: 15.4 KB
分享到:
相关推荐
本文旨在探讨ArcGIS与Oracle Spatial之间的直接连接方法,并讨论在此过程中遇到的问题及其解决方案。 #### 二、ArcGIS与Oracle Spatial直接连接概述 **2.1 直接连接的意义** 直接连接(Direct Connect)是指ArcGIS...
"使用Oracle Spatial对ArcSDE中的SDO_GEOMETRY类型数据进行空间操作" Oracle Spatial 是 Oracle 数据库中的一个空间数据处理组件,用于存储、管理和操作空间数据。ArcSDE 是一个空间数据引擎,用于存储和管理大规模...
在Java开发环境中,Oracle Spatial 提供了对应的jar包,如 `sdoutl.jar`、`sdoapi.jar` 和 `sdotype.jar`,以便开发者能够集成空间功能到他们的应用程序中。 `sdoutl.jar`:这是 Oracle Spatial 的输出库,包含了...
Oracle Spatial 是 Oracle 数据库的一个重要组件,专门用于处理地理空间数据和执行空间分析。这个官方文档是英文版,对于非英语母语者来说可能阅读起来有些困难,但它是理解 Oracle Spatial 功能和操作的关键资源。...
- **Oracle Spatial** 是Oracle数据库系统中一个用于管理和处理地理空间数据的功能组件。 - 它能够帮助用户有效地存储、索引及管理地理空间数据,并支持在地理信息系统(GIS)应用中的高效查询和操作。 ### 二、...
Oracle Spatial9i是Oracle数据库系统中的一项强大功能,专门用于处理地理信息系统(GIS)数据。它为GIS相关开发人员提供了一套完整的工具集,使他们能够在Oracle数据库环境中高效地存储、管理以及查询空间数据。对于...
[Packt Publishing] Oracle Spatial 应用扩展 (英文版) [Packt Publishing] Applying and Extending Oracle Spatial (E-Book) ☆ 图书概要:☆ Overview Understand how to develop Oracle Spatial data models ...
Oracle Spatial 是Oracle数据库的一个扩展模块,专门用于处理和分析地理空间数据。这个用户指南和参考文档是学习和掌握Oracle Spatial技术的重要资源,尽管它是英文版的。以下是对Oracle Spatial的一些核心知识点的...
在“Oracle Spatial学生指导”中,你将深入理解如何利用这个强大的工具进行地理信息系统(GIS)的工作。 首先,Oracle Spatial的核心概念包括空间数据类型、空间索引和空间操作。空间数据类型如MDSYS.SDO_GEOMETRY...
它集成在Oracle数据库中,提供了一套完整的空间数据管理解决方案,包括数据导入、导出、索引构建和查询优化。 二、空间数据存储 Oracle Spatial使用SDO_GEOMETRY数据类型来存储空间对象,该数据类型包含了对象的...
1. **介绍**:这一章为读者提供Oracle Spatial的基本概念和背景,解释了空间数据的重要性以及Oracle Spatial在GIS中的角色。 2. **安装与配置**:介绍如何在Oracle Database 11g环境中安装和配置Oracle Spatial,...
在本指南中,开发者可以学习到如何有效地利用Oracle Spatial来管理和操作地理信息。 Oracle Spatial的核心功能包括: 1. 数据存储:Oracle Spatial支持多种空间数据格式,如Shapefile、GML、KML等,可将这些数据...
由于大于60M,分两部分上传。 《Oracle Spatial空间信息管理:Oracle...《Oracle Spatial空间信息管理:Oracle Database 11g》还提供了丰富的样本数据、例子和提示,以帮助读者方便地将上述概念和工具结合到实际应用中。
Oracle Spatial 11g GeoRaster Oracle Spatial 11g GeoRaster Oracle Spatial 11g GeoRaster Oracle Spatial 11g GeoRaster
《Oracle Spatial空间信息管理:Oracle Database 11g》是世界级...《Oracle Spatial空间信息管理:Oracle Database 11g》还提供了丰富的样本数据、例子和提示,以帮助读者方便地将上述概念和工具结合到实际应用中。
标题 "oracleSpatial java Api lib" 指的是一个包含了 Oracle Spatial 的 Java 库,这些库文件主要服务于在 Oracle 10g 数据库环境中进行地理空间数据操作的应用程序。这个库可能包含了一系列的类和方法,用于创建、...
在本教学讲义中,我们将深入探讨Oracle Spatial的核心概念、功能以及如何在实际应用中有效地利用这些特性。 首先,Oracle Spatial提供了数据模型,包括点、线、面等基本空间对象,以及更复杂的空间关系,如覆盖、...
"基于Oracle Spatial的矢量空间数据管理机制" Oracle Spatial是一种空间数据库管理系统,可以管理和存储矢量空间数据。该系统基于Oracle数据库管理系统,提供了一个对象关系模型来存储和管理空间几何实体。 ...
Oracle Spatial是甲骨文公司推出的空间数据管理解决方案,其核心是一组专门针对Oracle数据库中空间元素的SQL模式、函数集以及空间索引机制。Oracle Spatial允许对空间数据进行存储、检索、更新和查询操作,是处理...
Oracle是第一个商业化的关系型数据库系统,并且是最早在其所有产品中实现完全基于互联网的企业软件的公司。Oracle产品线涵盖了数据库、服务器、开发工具和企业应用,同时提供咨询、教育和技术支持服务。 Oracle ...