代码改变世界

ArcGIS 空间查询(一)

2009-08-14 22:05  yuxiong  阅读(2133)  评论(0)    收藏  举报

ArcGIS 空间查询

Nine-intersection Model(九交模型)

         为啥开篇不直接进入主题,而要单独说一说九交模型?肯定是有原因的,当你读完全文,你就能发现问题的关键所在!

         九交模型是OGCOpen Geospatial Consortium,开放空间信息协会)制定的一套适用空间查询的一套模型。九交模型根据不同维度,不同类型的几何对象之间的空间关系来定义空间查询的基本算子。

         基本的几何对象元素有点,线,面,它们都有很明确的边界,内部,外部。相关定义如表1

几何对象

边界

内部

外部

无边界

点本身

点对象以外的区域

 

线

线对象的端点

除端点外的线对象

线对象外的区域

 

面对象控制边

面对象除边界后的区域

面对象本身外的区域

                                                             1

熟悉了这些基本的定义之后,我们进一步接触的就应该算是交九模型的核心,如何对空间关系进行推算:

九交模型通过比较两个或者多个对象的外部,边界,和内部,并求交,考虑求交结果的维度,故适合于各种对象。

 

任意对象ab

 

边界(b)

内部(b)

外部(b)

边界(a)

dim(I(a) intersect I(b))

dim(I(a) intersect I(b))

dim(I(a) intersect I(b))

 

内部(a)

dim(I(a) intersect I(b))

 

dim(I(a) intersect I(b))

 

dim(I(a) intersect I(b))

 

外部(a)

dim(I(a) intersect I(b))

 

dim(I(a) intersect I(b))

 

dim(I(a) intersect I(b))

 

                                                 2

 

dim(dimension)的返回值:有-1012. 分别代表不同的含义,如下:

T:交集存在,dim=012

F:交集不存在,dim=-1

0:交集存在,但其最高维度必须是0

1:交集存在,但其最高维度必须为1

2:交集存在,但其最高维度必须为2

注意:对于简单对象(单纯的点,线,面而言,一种三维矩阵能够解决,但是如果是不同类型组合对象组合而成的复杂对象,就需要多个三维矩阵来判断了。)

介绍了这么多的九交模型的知识,现在开始进入正题,ArcGIS是如何来对这些类型进行分类的。


ArcGIS下的空间查询算子的介绍待续。。。