zoukankan      html  css  js  c++  java
  • 【总结整理】关于ArcGIS中拓扑的理解

    空间拓扑:

    https://www.baidu.com/link?url=f8fd1d75GhwtT1JuyPDZydZlWCgEXB9DeuTzDqGQIIRpq0bM-8t3MlC5tXYvEwQw4XHIw6SS40qYgvkoK0S_sRdHfAKTFy6GYi8gegOstYm&wd=&eqid=9209db400004c901000000065ac0e81b

    描述的是自然界地理对象的空间位置关系-相邻、重合、连通等,是地理对象空间属性的一部分。目前ESRI提供的数据存储方式中,Coverage和GeoDatabase能够建立拓扑,Shape格式的数据不能建立拓扑。

    1、  GeoDatabase建立拓扑的基础:

    • GeoDatabase实现拓扑的基础是”几何重合”,GeoDatabase中的地理对象都是实体存储,主要是根据节点坐标是否重合来判断地理要素之间是否存在某种拓扑关系。
    • 拓扑只能在要素集(FeatureDataset)中创建,参加创建拓扑的所有要素类(FeatureClass)必须具有相同的空间参考。
    • 参与拓扑创建的必须是简单要素类,注记类(Annoca),尺寸和几何网络要素类不能参与拓扑的创建。
    • 单个要素集可以创建多个拓扑。

    2、  GeoDatabase拓扑中的重要概念。

    • 规则:表达要素之间的空间关系,ESRI提供了27种拓扑关系。
    • 拓扑容限,决定在多大范围内要素能够被捕捉在一起(也称为聚类容限(cluster tolerance))。
    • 拓扑等级,控制在拓扑验证的过程中节点移动的级别。这时候,等级低的要素类将向等级高的要素类移动,最高级别为1,最低级别为-50。
    • 脏区(dirty area):脏区就是参与拓扑创建时被修改的地理要素(增,删,改)的区域。
    • 错误要素(Error Feature):只要素类中不符合拓扑规则的要素或者要素的一部分。

    3、  27种拓扑关系:

    • esriTRTAny:任何拓扑规则,在查询拓扑的时候用。
    • esriTRTFeatureLargerThanClusterTolerance:地理要素小于聚类容限被删除。
    • esriTRTAreaNoGaps:面是封闭的。
    • esriTRTAreaNoOverlap:面不相交。
    • esriTRTAreaCoveredByAreaClass:The rule is an area covered by area class rule。
    • esriTRTAreaAreaCoverEachOther:两个区域完全重合。
    • esriTRTAreaCoveredByArea:一个区域被另一个区域覆盖。
    • esriTRTAreaNoOverlapArea:一个面没有相交的面。
    • esriTRTLineCoveredByAreaBoundary:线被区域的边线覆盖。
    • esriTRTPointCoveredByAreaBoundary:点在面的边界上。
    • esriTRTPointProperlyInsideArea:点完全在面内。
    • esriTRTLineNoOverlap:无重合的线。
    • esriTRTLineNoIntersection:无相交的线。
    • esriTRTLineNoDangles:无摇摆的线。
    • esriTRTLineNoPseudos:线不存在伪节点。
    • esriTRTLineCoveredByLineClass:The rule is a line covered by line class rule。
    • esriTRTLineNoOverlapLine:The rule is a line-no overlap line rule。
    • esriTRTPointCoveredByLine:点被线覆盖。
    • esriTRTPointCoveredByLineEndpoint:点被线的尾节点覆盖。
    • esriTRTAreaBoundaryCoveredByLine:一个面的边界被线覆盖。
    • esriTRTAreaBoundaryCoveredByAreaBoundary:一个面的边界被另一个面的边界覆盖。
    • esriTRTLineNoSelfOverlap:不存在自重合的线。
    • esriTRTLineNoSelfIntersect:不存在自相交的线。
    • esriTRTLineNoIntersectOrInteriorTouch:The rule is a line-no intersect or interior touch rule。
    • esriTRTLineEndpointCoveredByPoint:线的尾节点被点覆盖。
    • esriTRTAreaContainPoint:面包含点。
    • esriTRTLineNoMultipart:The rule is a line cannot be multipart rule。

    多边形topology
      1.must not overlay:单要素类,多边形要素相互不能重叠
      2.must not have gaps:单要素类,连续连接的多边形区域中间不能有空白区(非数据区)
      3.contains point:多边形+点,多边形要素类的每个要素的边界以内必须包含点层中至少一个点
      4.boundary must be covered by:多边形+线,多边形层的边界与线层重叠(线层可以有非重叠的更多要素)
      5.must be covered by feature class of:多边形+多边形,第一个多边形层必须被第二个完全覆盖(省与全国的关系)
      6.must be covered by:多边形+多边形,第一个多边形层必须把第二个完全覆盖(全国与省的关系)
      7.must not overlay with:多边形+多边形,两个多边形层的多边形不能存在一对相互覆盖的要素
      8.must cover each other:多边形+多边形,两个多边形的要素必须完全重叠
      9.area boundary must be covered by boundary of:多边形+多边形,第一个多边形的各要素必须为第二个的一个或几个多边形完全覆盖
      10.must be properly inside polygons:点+多边形,点层的要素必须全部在多边形内
      11.must be covered by boundary of:点+多边形,点必须在多边形的边界上
      
      线topology
      1.must not have dangle:线,不能有悬挂节点
      2.must not have pseudo-node:线,不能有伪节点
      3.must not overlay:线,不能有线重合(不同要素间)
      4.must not self overlay:线,一个要素不能自覆盖
      5.must not intersect:线,不能有线交叉(不同要素间)
      6.must not self intersect:线,不能有线自交叉
      7.must not intersect or touch interrior:线,不能有相交和重叠
      8.must be single part:线,一个线要素只能由一个path组成
      9.must not covered with:线+线,两层线不能重叠
      10.must be covered by feature class of:线+线,两层线完全重叠
      11.endpoint must be covered by:线+点,线层中的终点必须和点层的部分(或全部)点重合
      12.must be covered by boundary of:线+多边形,线被多边形边界重叠
      13.must be covered by endpoint of:点+线,点被线终点完全重合
      14.point must be covered by line:点+线,点都在线上

    注意:https://wenku.baidu.com/view/2524db41a5e9856a56126084.html

    1.arcgis的shp格式数据不支持拓扑规则检查,所以一定要保持geodatabase规则

    2.要进行拓扑规则检查的要素类必须在同一要素集下

     

    什么是拓扑?

    是反映空间要素和要素类之间的关系的数据模型或格式
    ——要素:是现实对象的GIS表示
    空间数据用于保证数据质量的完整性规则
    一致性、相邻性、联通性……

    GIS中引入拓扑的意义:

    (1)有效避免了数据重复存储;

    (2)存储实体间关系,便于查询和检索。

    ArcCatalog 提供的拓扑向导工具中的六个步骤:

    1、拓扑关系命名

    2、指定cluster tolerance

    3、选择参与拓扑关系的要素

    4、设定坐标精度级别

    5、指定拓扑规则

    6、验证拓扑关系

    AE中与拓扑相关的接口

    (1)ITopologicalOperator:对已存在的几何对象做空间拓扑运算从而产生新的几何对象
     例如:Boundary 返回几何对象的边界
               Buffer方法 可以对几何对象进行缓冲区空间拓扑操作
               Clip方法   用一个Envelope对象对一个几何对象进行裁剪,返回该几何对象被裁剪后的区域
    (2)IRelationalOperator:获取不同几何对象之间的关联关系,如包含,相等,包含,相交,叠加等,一般通过IRelationalOperator的某

    一个方法返回一个bool值来说明这两个几何对象是否具有某种关系
    例如:Contains方法 检查几何对象A是否包含几何对象B
          Crosses方法  检查两个几何对象是否相交
          Touches方法  检查两个几何对象是否相连
    (3)IProximityOperator:获取两个几何对象的距离,以及给定一个点,求另一个几何对象上离给定点最近的点
    例如:QueryNearestPoint方法  返回几何对象上离给定输入点距离最近的点的引用
          ReturnNearestPoint方法 创建并返回几何对象上离给定输入点距离最近的点
          ReturnDistance方法     返回两个几何对象间的最短距离
    (4)AE开发中设计空间分析时,操作的几何对象必须是简化的几何对象,在操作前可以通过ITopologicalOperator.Simplify()方法使一个几何对象在拓扑上一致

     

    ArcGIS 中的拓扑概述

    ArcMap 10.3
    |
     

    如果有重叠且共享相同坐标位置、边界或节点的要素,则地理数据库拓扑可帮助更好地管理地理数据。

    地理数据库拓扑帮助您确保数据完整性。拓扑的使用提供了一种对数据执行完整性检查的机制,帮助您在地理数据库中验证和保持更好的要素表示。

    此外,还可以使用拓扑为要素之间的多种空间关系建模。这为多种分析操作(如查找相邻要素、处理要素之间的重叠边界以及沿连接要素进行导航)提供了支持。

    拓扑关系

    拓扑是点、线和多边形要素共享几何的方式的排列布置。拓扑用于以下操作:

    • 限制要素共享几何的方式。例如,相邻多边形(如宗地)具有共享边、街道中心线和人口普查区块共享几何以及相邻的土壤多边形共享边。
    • 定义并执行数据完整性规则:多边形之间不应存在任何间距、不应有任何叠置要素等。
    • 支持拓扑关系查询和导航,如确定要素邻接性和连通性。
    • 支持可强制执行数据模型拓扑约束的复杂编辑工具。
    • 根据非结构化的几何构造要素,如根据线创建多边形。

    根据现有数据构建拓扑的过程可总结为以下步骤:

    拓扑工作流和任务

    任务详细信息链接

    设计拓扑。

    请参阅设计地理数据库拓扑

    在地理数据库中的公用要素数据集内创建一组要素类。

    请参阅使用要素数据集概述

    如果已经有要素数据,将这些数据加载到要素类中。

    请参阅关于导入要素类

    使用 ArcCatalog 或地理处理工具创建拓扑。

    请参阅创建拓扑

    构建和验证拓扑。

    请参阅验证拓扑

    将拓扑添加到 ArcMap 并设置其显示属性。

    请参阅在 ArcMap 中绘制和显示拓扑

    使用编辑环境来识别和修复错误。

    请参阅编辑拓扑

    管理要素类更新和脏区。

    请参阅验证拓扑

    管理版本化地理数据库内的拓扑。

    请参阅拓扑和已版本化的地理数据库

    执行多个其他一般编辑任务。

    请参阅一般拓扑任务

  • 相关阅读:
    MFC中 CListCtrl控件的使用及定位、选中
    在VC++6.0中,编译,调试都能通过,但运行到某一步的时候就报错的可能原因。
    存储IplImage结构体到STL中的vector中的问题
    VS工程,换电脑后出现的问题
    What is a Full Stack developer?
    [MB855]变砖解决
    ERP 开发过程中涉及到的算法 库存,工程,生产计划,固定资产计算方法
    定义枚举类型带有byte 的作用
    构造函数带有this和base的作用
    创建一个简单的WCF程序(转载)
  • 原文地址:https://www.cnblogs.com/lianghong/p/8688796.html
Copyright © 2011-2022 走看看