一图理解geos的九交矩阵模型——面面关系

2 篇文章 0 订阅
订阅专栏

九交模型用来表示二维点线面几何对象的关系,网上有很多介绍。本文将结合geos的实现和工作中遇到的问题来探讨九交模型。

(一)九交模型的定义

【英文名】Dimensionally Extended nine-Intersection Model (DE-9IM)

九交矩阵用来表示图形之间的关系。其横竖分别是两对象AB的内部interior、边界boundary、外部exterior的交集的维数,见下表。维数的取值为0-交于1点,1-交于线,2-交于面,F-代表-1,即不相交。见下表。

A  \  Binteriorboundaryexterior
interiorDim(I(A),I(B))Dim(I(A),B(B))Dim(I(A),E(B))
boundaryDim(B(A),I(B))Dim(B(A),B(B))Dim(B(A),E(B))
exteriorDim(E(A),I(B))Dim(E(A),B(B))Dim(E(A),E(B))

对于面域,其相交关系为完全重合、内含(这里指边点均无接触的包含)/外离、内/外共点、内/外共边、面交错,见下面黄线图。

(二)geos的九交模型之面

调试构面程序时,使用geos实现的九交模型来去除重复面总是各种问题,怀疑geos用的有问题,随即画图枚举各种情况进行测试。因为之前对九交模型理解的并不透彻,想当然地认为如下图第1个多边形与其自身及其他7个多边形间的8种关系应该是不同的九交矩阵。 表格中是geos得出的结果,

显然,虚线框里的2和7相对于多边形1的关系是同样的九交矩阵,即在B(当前比较图形,plgId的右Id)在A(第1个图形,plgId的左Id)“内部”时,内含和边接触无法区分,两者与点接触可以区分。(常见文字中的"内部"、"外部"字眼,感觉很模糊,不足以区分交于点、交于线、交错面.)

而B在A外部时,从plgId中13、14、15的mx可以看到,第5个元素(中心元素)分别是F、0、1,很好的区分出不同。

再来一个例子专门考究边接触。图中4、5号面与1号面相交的边的端点是1号面也有的端点,3、6号面与1号面相交的边的端点不是1号面的端点,是绘制时捕捉与1号面的边交点产生的。理论上4、5的九交矩阵一致,3、6的也一致。实际上,表格中4、5一致,2、6一致,3、6不同。说明对3、6图的测试产生的矩阵具有随机性。再看测试后求大面与交集求差的结果,intersectedNum字段为1号面减去交集区后的ring个数(-后为外环顶点)。3、4、5号面各自与大面做差后是一个环,2、6号面做差后是两个环。如果6号应该是两个,那么3号面为何不是两个?是因为精度吗?

    geos::geom::PrecisionModel *pm = new geos::geom::PrecisionModel(1000, 0, 0);
    geos::geom::GeometryFactory geomFact(pm);

下表是按照pm到0.001的精度的结果。实测按照0.01的精度结果也是一样。回到构面程序中去重复过程,因之前有打断这一步,不存在3和6的图形,当参与比较的两面为包含关系时,仅从大面与交集做差后的环数即可判断是否内含而不内接。

总结:当面域不含视觉上的公共边时,求交可靠;对于视觉上的共边对象,当重合边的小面顶点也是大面的顶点时,可靠;而当重合边的小面顶点不是大面的顶点时,九交矩阵有随机性、不可靠。

(三)geos的面域比较——difference()

对于下图,表格增加了intersectN列,表明将plgId的两个多边形求A->difference(B)后的多边形内外环总个数。多边形7 与多边形10,视觉上相同,但intersectN的值不同。原因是,多边形7与1的公共部分边的两节点M、N,在多边形1上并无那两个节点,是捕捉最近点绘制的,而多边形10与1的公共部分边的两个节点M、N也是多边形1的节点。个人觉得,geos这种问题的处理理想状态更应该是对于7多边形,与1比较difference后都是1个环,正如与6和9比较一样。对于8多边形,若用一个环则是自相交多边形,很别扭,反而是两个环符合预期。

最后,至于contains\covers\overlaps\touches\crosses\disjoint的区别,本人英语so so,还得从图、表结合才能理解准确。以下矩阵形式来源于geos的头文件注释,预究其坑还待作图考证。

isEquals(DimA,DimB)——T*F**FFF*.

isContains——即完全包含,可以点、边相接也可内含或相等,九交矩阵为T*****FF*;

isWithin——被包含,与contains相反,T*F**F***,是contains矩阵的转置;

isCovers——包括contains,九交矩阵可以是T*****FF*,*T****FF*,***T**FF*,****T*FF*;

isCoveredBy——其矩阵是covers的转置;

isOverlaps(DimA,DimB)——面交叠,面面\点点是T*T***T**,线线是1*T***T**;

isTouches(DimA,DimB)——边或点外接触,九交矩阵可以是FT*******, F**T*****, F***T****,第一个是F表明接触只能是外部的。

isCrosses(DimA,DimB)——非面面关系,点线、点面、线面是T*T******,线线是0********;

isDisjoint——外离,FF*FF****,仅图中 1和3关系是外离,也只有外离时,A->distance(B)才返回非0.

isIntersects——非disjoint 的都返回 true;

【参考】

[GIS算法] 2.1.2 维数扩展的九交集模型 空间关系的判定_geodoer的博客-CSDN博客_九交矩阵

[GIS算法] 2.1.2 维数扩展的九交模型 空间关系的判定
geodoer
08-30 5974
上节说到: 1. 考虑对比两个几何体的内部和边界的交集–>【4交集模型】 2. 【4交集模型】,再考虑到输入几何体的外部–>得到【9交集模型】 3. 【9交集模型】,在维度上拓展–>得到【维数拓展的9交集模型】 维数扩展的9交集模型 【英文名】Dimensionally Extended nine-Intersection Model (DE-9IM) 【听小弟说...
Geos库学习之(三)——几何对象空间关系
尘海折柳的博客
10-24 3319
目录 一.基础介绍 二.GEOS里面空间几何关系判断的用法 三.总结 一.基础介绍 常见的基础几何对象主要包括点、线、面所构成的图形。在进行几何对象空间关系判断的时候,我们在GEOS里面主要使用的是DE-9IM(Dimensionally Extended nine-Intersection Model (DE-9IM)),也称为九交模型。通常我们会将一个几何对象分为三个部分:外部(ex...
拓扑关系——九交模型
热门推荐
qq_28934471的博客
06-11 1万+
空间关系 中文名称 OGC标准 解释 Contains 包含 是 一个几何图形的内部完全包含了另一个几何图形的内部和边界。 CoveredBy 覆盖 否 一个几何图形被另一个几何图形所包含,并且它们的边界相交。Point和MultiPoint不支持此空间关系,因为它们没有边
2.GIS空间数据质量及空间拓扑(笔记)
qq_43749659的博客
01-06 2592
2.空间数据 2.1 空间数据三个基本特征 (1)空间特征(定位) 空间特征指空间物体的位置、形状和大小等几何特征,以及与相邻物体的拓扑关系。位置和拓扑特征是地理或空间信息系统所独有的,空间位置可以由不同的坐标系统来描述,如经纬度坐标、一些标准的地图投影坐标或是任意的直角坐标等。 GIS的作用之一就是进行各种不同坐标系统坐标间的相互转换。人类对空间目标的定位一般不是通过记忆其空间坐标,而是确定某一目标与其他更熟悉的目标间的空间位置关系,而这种关系往往也是拓扑关系。如一个学校是在哪两条路之间,或是靠近哪个道路
PostGIS教程十八:维数扩展的9交集模型
挣钱花388的博客
08-12 421
维数扩展的9交集模型"(DE9IM)是一个用于建模两个空间对象如何交互的框架。内部(interior)边界(boundary)外部(exterior)内部是以环为边界的里面的那一部分;边界是环本身;外部是边界外的一切。对于线性要素,内部边界和外部内部是以端点为界限的线的那一部分;边界是线性要素的端点;外部是平面中除内部和边界外的所有其他部分。内部是点,边界是空集,外部是平面上除点以外的所有其他部分。使用这些内部外部和边界的定义,任何一对空间要素之间的关系都可以用一对要素的内部边界外部。
PostGIS教程十九:维数扩展的9交集模型
不睡觉的怪叔叔的博客
02-28 7514
目录 一、什么是维数扩展的9交集模型 二、查找具有特定关系的几何图形 三、数据质量测试 四、本文涉及的函数 一、什么是维数扩展的9交集模型 "维数扩展的9交集模型-Dimensionally Extended 9-Intersection Model"(DE9IM)是一个用于建模两个空间对象如何交互的框架。 首先,每个空间对象都具有: 内部(interior) 边...
JTS:06 九交模型讲解
God_Father_kao的博客
09-15 703
蓝图形 - 红图形 边界:外部 蓝图形边界是一条线,被红图形外部包含所以为 1。蓝图形 - 红图形 内部:外部 外部包含红图形面 为 2。蓝图形 - 红图形 外部:边界 包含红图形边界 1。蓝图形 - 红图形 外部:外部 俩个外部面交互 2。蓝图形 - 红图形 内部:内部 无点线面交集 F。蓝图形 - 红图形 内部:边界 无点线面交集 F。蓝图形 - 红图形 边界:内部 无点线面交集 F。蓝图形 - 红图形 边界:边界 无点线面交集 F。蓝图形 - 红图形 外部:内部 包含红图形 2。
空间数据库之空间九交关系模型
startwithdp的专栏
10-17 3137
1.interior  interior 2.interior  boundary   3.interior  exterior 4.boundary   interior 5.boundary   boundary   6.boundary   exterior 7.exterior  interior 8.exterior  boundary  9.exterior  exte
PostGIS学习教程十八:维数扩展的9交集模型
数字人生
01-05 1273
维数扩展的9交集模型-Dimensionally Extended 9-Intersection Model”(DE9IM)是一个用于建模两个空间对象如何交互的框架。首先,每个空间对象都具有:内部(interior)边界(boundary)外部(exterior)内部是以环为边界的里面的那一部分;边界是环本身;外部是边界外的一切。对于线性要素,内部、边界和外部不太为人所知:内部是以端点为界限的线的那一部分;边界是线性要素的端点;外部是平面中除内部和边界外的所有其他部分。
C++的GEOS库实现几何计算,多个面和一条线相交后得到多条线段的例子。
Xeon_CC的博客
06-10 1444
C++开发GDAL
BuildMatrixImageGenerator:用于创建GEOS-Chem构建矩阵图像的脚本
04-06
这是用于构建GEOS-Chem构建矩阵映像的Dockerfile和makefile。 这些脚本不够强大,可能需要进行调整/更新。 要求 码头工人> = 18.09 建立构建矩阵图像 您应该在本地计算机上生成构建矩阵图像。 克隆此仓库: $ git ...
GEOSgcm:GEOS地球系统模型GEOSgcm固定装置
02-24
GEOS GCM治具 CI状态 CI提供者 状态 CircleCI AWS CodeBuild 的GitHub 如何建立GEOS GCM 初步步骤 加载构建模块 在您的.bashrc或.tcshrc或其他rc文件中,添加一行: NCCS module use -a /discover/swdev/gmao_...
Geos库学习之(四)——几何对象空间关系判断实例
尘海折柳的博客
10-24 2556
上篇我们主要对几何对象之间的关系做了简单的说明,在GEOS中的方法使做了大概的了解,本篇我们以程序实例对这几种关系进行简单的验证说明,直接上代码: // GeoTest.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include <stdlib.h> #include "geos....
Geos库学习之(二)——使用Geos库创建简单的几何对象
尘海折柳的博客
10-24 3998
目录 一.基础概念 二.使用geos创建简单的几何对象 一.基础概念 几何图形(Geometry)是geos里面基本的操作对象,因此Geometry类就是最重要的一个类 几何图形中主要有三个要素:点,线,面。坐标构成点,多点构成线,环线构成面,点线面混合构成几何集合。对应的在GEOS里面的几个类为: 坐标:Coordinate(横纵坐标) 点:Point(单点)、MultiPoint...
九交模型算法GeoJSON多边形面积
weixin_35756637的博客
01-04 598
九交模型是一种计算多边形面积的算法。它将多边形分成若干个三角形,然后利用海伦公式计算每个三角形的面积,最后将所有三角形的面积加起来,就得到了多边形的面积。 假设你要计算一个由n个点组成的多边形的面积,可以使用以下步骤: 使用GeoJSON的坐标信息,在平面直角坐标系中画出多边形。 找到多边形的一条边,将它与x轴形成的三角形求出面积。 对于多边形的其他所有边,都将它与x轴形成的三角形求出面积,然后...
geos::geom 几何空间关系
C18304057755的博客
06-30 228
getGeometryTypeId () 获取相交的几何类型 如:geos::geom::GEOS_MULTIPOINT等。1.相交 intersects(判断是否相交) intersection(获取相交的几何形状)getCoordinates ()获取相交几何的坐标序列。getSize()获取坐标点的个数。
shapely.errors.TopologicalError: The operation ‘GEOSIntersection_r‘ could not be performed.
m0_46429066的博客
10-15 4241
错误原因:在使用Polygon中包含了一个 intersection求交集的操作,查阅资料可能是因为多边形中存在一个小的多边形,解决办法就是给Polygon加上一个小的buffer, 如下所示: shgeo.Polygon([(left, up), (right, up), (right, down), (left, down)]).buffer(0.001) 可以成功解决问题,参考问题如下: https://blog.csdn.net/s
geos学习一】&面的创建,与相交判断
yGIS
04-13 2005
这个例子是摘自geo源代码中一个工程文件,主要是学习会使用geos来创建面,以及面两个面位置关系的判断。具体的实现代码如下所示。 // bug234.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <vector> #include "geos/geom/GeometryFactory.h" #include "geos...
数据结构】宜宾大学-计院-实验三
最新发布
2303_80737493的博客
10-17 803
线性表的应用——实现两多项式的相加 课前准备: 实验学时:2 实验目的: 实验内容: 实验结果: 实验报告:(及时撰写实验报告) 实验测试结果: 代码实现:(C/C++)【含注释】
深入GEOS库的vc代码开发应用解析
资源摘要信息: "geos.rar_GEOS_geos v" 知识点概述: 1. GEOS库简介 2. GEOS库的功能与用途 3. VC开发环境介绍 4. 如何在VC中使用GEOS库进行底层开发 5. GEOS库的应用实例和最佳实践 6. GEOS库的历史与版本信息 1....
写文章

热门文章

  • 一图理解geos的九交矩阵模型——面面关系 7288
  • 控件运行时需要design-time license的解决 3650
  • 在vscode中生成java类图 3081
  • osg 点云概略坐标显示与精确坐标获取 2318
  • Unity 2020.3.21f1c1 install and WebGL module download 2102

分类专栏

  • java 1篇
  • ubuntu 1篇
  • colmap 1篇
  • GIS 2篇
  • Unity 1篇
  • OSG 2篇

最新评论

  • osgeo4w增加武大源

    cuckoo321: 若是用osgeo安装的,我没有卸载过,不过看到所有下载的项目都共享公共的include、lib、bin、share、var,QGIS本身依赖众多不方便卸载,删除bin会导致其他项目不能用;用QGIS官方安装包下载的常规方法卸载即可。

  • 一图理解geos的九交矩阵模型——面面关系

    K A S: 哇,直观易懂!

  • osgeo4w增加武大源

    kelly1250230225: 博主,请问qgis卸载该怎么做呢

最新文章

  • 经典基础算法文档
  • 在vscode中生成java类图
  • Ubuntu18.04安装colmap并被vncviewer远程访问桌面
2023年2篇
2022年5篇
2021年1篇
2017年1篇
2013年2篇
2008年1篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家福建商业商场美陈生产厂家云南雕塑玻璃钢雕塑武威抽象人物玻璃钢雕塑哪家好商场美陈工程玻璃钢仿铜雕塑哪个比较好玻璃钢仿真飞机雕塑通用玻璃钢雕塑摆件供应新余步行街玻璃钢雕塑价位顺义区商场美陈哪家公司好清远玻璃钢卡通雕塑批发价格山东抽象玻璃钢雕塑供应商玻璃钢雕塑水果造型杭州佛像玻璃钢雕塑市场平凉抽象人物玻璃钢雕塑哪家好忻州玻璃钢海豚雕塑价格潢川玻璃钢雕塑云南门头玻璃钢雕塑青岛2020商场圣诞美陈通州区商场美陈价格绍兴玻璃钢卡通雕塑加工价格海口玻璃钢雕塑加工咨询安国玻璃钢雕塑景观玻璃钢雕塑选哪家楚雄玻璃钢牌匾雕塑木花盆和玻璃钢花盆曲阳玻璃钢大猩猩雕塑山东玻璃钢青蛙雕塑六安商场大型美陈福建特色商场美陈售价获嘉玻璃钢雕塑设计香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化