摘自: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数据的读写问题
[Packt Publishing] Oracle Spatial 应用扩展 (英文版) [Packt Publishing] Applying and Extending Oracle Spatial (E-Book) ☆ 图书概要:☆ Overview Understand how to develop Oracle Spatial data models ...
介绍了如何使用Oracle Spatial操作通过ArcSDE存储到Oracle数据库中的空间数据
由于大于60M,分两部分上传。 《Oracle Spatial空间信息管理:Oracle...《Oracle Spatial空间信息管理:Oracle Database 11g》还提供了丰富的样本数据、例子和提示,以帮助读者方便地将上述概念和工具结合到实际应用中。
oracle spatial 空间 笔记
Oracle Spatial 11g GeoRaster Oracle Spatial 11g GeoRaster Oracle Spatial 11g GeoRaster Oracle Spatial 11g GeoRaster
Oracle Spatial 中的SDO_GEOMETRY类型
《Oracle Spatial空间信息管理:Oracle Database 11g》是世界级...《Oracle Spatial空间信息管理:Oracle Database 11g》还提供了丰富的样本数据、例子和提示,以帮助读者方便地将上述概念和工具结合到实际应用中。
本书是世界级Oracle Spatial专家Ravi Kothuri、Albert Godfrind和Euro Beinat的力作,旨在向您提供空间信息管理方面的概念知识和实用技能,帮助您成为该领域的专家。书中涵盖了Oracle数据库中空间信息管理的所有内容...
oracle spatial 介绍,应用,案例,实用说明等相关介绍
Pro Oracle Spatial for Oracle Database 11g shows how to take advantage of Oracle Database's built-in feature set for working with location-based data. A great deal of the information used in business ...
学习Oracle Spatial的入门书
其针对存储在Oracle Spatial数据库中空间元素提供了一种SQL 模式和便于存储、检索、更新、查询的函数集。它由以下组件构 成:一种描述几何数据存储、语法、语义的模式MDSYS;一种空间 索引机制SDO—INDEX;一组实现...
Oracle Spatial9i 相关信息,GIS相关开发人员有必要了解!
Oracle Spatial 官方文档 pdf 英文版 鸟语不好的看起来要费劲点
oracle spatial 用户指南和参考,对于想了解oralce spatial技术有帮助,不过是英文文档。
Oracle Spatial Developer's Guide
Oracle Spatial 和MapViewer 新特性
空间数据库课件:第四讲 Oracle 及Oracle Spatial.ppt
oracle.spatial的jar包,包括geometry、util等