DE-9IM:The Dimensionally Extended Nine-Intersection Model
要使用DE-9IM首先要建立几何对象的interior,boundary和exterior。首先boundary是指对几何进行一次降维之后得到对象,举例来说一个点的boundary为空,未封闭的线的boundary为其两个端点,封闭线的boundary为空,多边形的boundary为它的环状边界。interior是指几何对象的边界被移除之后剩下的部分。exterior则是指不在boundary和interior中点构成的几何对象。
约定:以I(a),B(a),E(a)表示几何对象a的interior,boundary和exterior,以dim(a)表示几何对象的维度,在二维空间中他的取值为{-1, 0, 1, 2},其中-1代表空。为了便于表示,用下面一些符号来表示取值的集合:
T : {0, 1, 2}
F : {-1}
* : {-1, 0, 1, 2}
0 : {0}
1 : {1}
2 : {2}
那么就可以用这样一个矩阵来判断几何对象a和b的位置关系:
| Interior | Boundary | Exterior |
Interior | dim(I(a)∩I(b)) | dim(I(a)∩B(b)) | dim(I(a)∩E(b)) |
Boundary | dim(B(a)∩I(b)) | dim(B(a)∩B(b)) | dim(B(a)∩E(b)) |
Exterior | dim(E(a)∩I(b)) | dim(E(a)∩B(b)) | dim(E(a)∩E(b)) |
另外,将零维对象简写为P,一维对象简写为L,二维对象简写为A。
根据这个矩阵的值可以构造一个字符串,这个字符串称为IntersectionPattern。另外JTS中的IntersectionMatrix也封装了这个矩阵。
以下是几个预定义的空间关系
Equal 两个几何对象完全相同,它的定义表示为DE-9IM即"TFFFTFFFT"
Disjoint 两个对象的边界和内部都没有任何公共部分,表示为DE-9IM是"FF*FF****"
Intersection Disjoint取反
Touches 简单地说Touches表示两个对象的边缘相接触,这个关系是以下几类几何对象间特有的:A/A, L/L, L/A, P/A ,P/L。用DE-9IM表示,可以为"FT*******", "F**T*****"或"F***T****"
Crosses Crosses表示一个对象穿过另一个对象,它应用于P/L, P/A, L/L和L/A之间。用DE-9IM表示为:"T*T******"(P/L, P/A,L/A),"0********"(L/L)
Within 包含于。DE-9IM表示:"T*F**F***"
Overlaps 相叠,应用于A/A, L/L 和P/P之间。DE-9IM:"T*T***T**"(A/A, P/P),"1*T***T**"(L/L)
Contains 包含,对立于Within。
JTS的Geometry类实现了以上的所有方法,而由于这些方法不能表示全部的空间位置关系,因此OGC的Simple Feature Specification和JTS都提供了一个relate方法,用来测试指定的DE-9IM关系。
分享到:
相关推荐
首先,从标题来看,“imim.zip_imim-user-194177_imim-user-237221_imim-user-444202_imim”可能是用户ID的组合,暗示这可能是一个社区共享的代码资源,由多个用户参与讨论或改进。其中,“imim”可能是项目名或特定...
de9im是一个 Javascript 库,它提供由定义的空间谓词函数,并与对象一起使用。 它可以测试,如果两个几何具有下列关系之一: contains , coveredby , covers , crosses , disjoint , equals , intersects , ...
J-IM的文档不仅介绍了其作为即时通讯中间件的核心优势和特性,还详细描述了开发环境的构建、工程结构的组成、入门步骤、客户端与服务端的开发方法,以及常用类的介绍和使用方法。通过这些内容,开发者可以快速掌握...
使用java语言,jim实时通讯流行框架教程,
本源码项目是基于Java的J-IM轻量级高性能即时通讯系统设计,包含278个文件,主要使用Java、HTML、Shell和JavaScript编程语言。该项目旨在降低即时通讯门槛,快速打造低成本接入在线IM系统。系统通过极简洁的消息格式...
J-IM即时通讯系统开源的源代码允许开发者深入理解系统内部工作原理,进行二次开发或定制化改造。这为开发者提供了极大的灵活性,可以根据具体业务需求调整和扩展系统功能。 2. **毕业设计论文**: 对于计算机科学...
1. **仿真脚本**:这些脚本可能是用MATLAB或C++编写的,用于模拟OFDM-IM或IM-OFFDM系统的信号传输过程,包括信道编码、调制、子载波分配、信道模型、解调和错误检测等步骤。 2. **数据结构**:可能包含表示OFDM符号...
通过DE-9IM,我们可以建立一套标准来判断不同几何对象之间的位置关系,从而在GIS中执行复杂的空间分析任务,如缓冲区分析、拓扑验证和空间查询。 总结来说,GIS算法的几何基础涵盖了空间对象的维数扩展、9交集模型...
J-IM 是用JAVA语言,基于t-io开发的轻量、高性能、单机支持几十万至百万在线用户IM,主要目标降低即时通讯门槛,快速打造低成本接入在线IM系统,通过极简洁的消息格式就可以实现多端不同协议间的消息发送如内置(Http...
1. 使用SpringBoot初始化项目,配置WebSocket端点,处理客户端连接和断开。 2. 集成J-IM,利用其提供的WebSocket相关功能,处理消息发送和接收。 3. 配置Zookeeper,确保服务发现和集群状态管理,以实现高可用性。 4...
open-im-server
### SIMATIC ET 200 SMART IM60 远程IO模块系统手册核心知识点解析 #### 一、系统概述 SIMATIC ET 200 SMART IM60 是一款高效的远程IO模块,专为工业自动化应用设计。这款模块支持灵活、快速的现场层设备连接,...
本项目是基于PHP的即时通信聊天应用Raingad-IM后端设计源码,包含876个文件,其中主要包含179个png图片文件,168个bcmap字体文件,111个ftl模板文件等。系统采用了PHP、JavaScript、CSS和HTML等技术,实现了即时通信...
这种空载波的选择方式可以视为一种二进制序列,从而增加了系统的容量而不增加总的发射功率。OFDM-IM通过在子载波激活模式和数据符号上同时编码信息,实现了更高的频谱效率,特别是在低信噪比(SNR)环境下表现优异。...
它可能用Java、Python、Node.js等后端语言编写,使用RESTful API进行通信,并且可能依赖于数据库存储面试记录、用户信息等数据。 2. **mianshi-im-api**:这是即时通讯相关的API接口,可能是一个单独的服务,负责...
QQ工作原理--开发IM即时通讯工具
而"lemon-im-1.8.0"则包含实际的源代码文件,开发者可以在此基础上进行二次开发,根据项目需求进行定制化修改。 总之,Lemon IMUI v1.8.0是一款强大的聊天组件,它的源代码是开发者深入理解即时通讯系统内部运作、...
标题中的"jmagick-6.2.4-1-IM-6.2.5.jar"和"ImageMagick-6.2.5-4-Q16-windows-dll.exe"分别指的是JavaMagick库和ImageMagick软件的不同版本。这两个组件在IT领域中扮演着重要的角色,特别是对于图像处理和转换。 **...