空間数据拓扑关系的自动生成.docVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
空間数据拓扑关系的自动生成

空间数据拓扑关系的自动生成 冯文钊 拓扑空间关系是一种对空间结构进行明确定义的数学方法,具有拓扑关系的矢量数据结构就是拓扑数据结构。矢量数据拓扑关系在空间数据的查询和分析过程中非常重要,拓扑数据结构是地理信息系统分析和应用功能所必需的,它描述了基本空间目标点、线、面之间的关联、邻接和包含关系。拓扑空间关系信息是空间分析、辅助决策的等的基础,也是GIS区别于CAD(计算机辅助设计)等的主要标志。拓扑空间关系的自动建立算法是GIS中的关键和难点算法之一,国内外对该问题一直在进行研究。而且,由于拓扑关系自动生成与维护的复杂性,GIS学术界研究人员针对GIS是否需要拓扑关系,问题是以一种什么样的方式来进行拓扑空间关系表达。对于拓扑关系的自动建立问题,研究的焦点是如何提高算法与过程的效率和自动化程度,本章将讲述其实现的基本步骤和要点。 拓扑关系自动生成算法的一般过程为: 弧段处理,使整幅图形中的所有弧段,除在端点处相交外,没有其他交点,即没有相交或自相交的弧段。 结点匹配,建立结点、弧段关系。 建立多边形,以左转算法或右转算法跟踪,生成多边形,建立多边形与弧段的拓扑关系。 建立多边形与多边形的拓扑关系。 调整弧段的左右多边形标识号。 多边形内部标识号的自动生成。 事实上,拓扑关系的生成过程中还涉及到许多工作,例如弧段两端角度的计算、悬挂结点和悬线的标识、多边形面积计算、点在多边性内外的判别等。 第一节拓扑关系的计算机表达 拓扑结点 结点用来描述如管线的交点、道路路口等现实世界的特征对象,结点可以用来检测弧段与弧段的连接关系和多边形特征是否能正确地完成。只与一条弧段相连接的起点或终点叫做悬挂结点。如图1所示P点就是悬挂结点: 图1 结点一般包括:结点号、结点坐标、与该结点连接的弧段集合,结点的数据结构可以表示如下: class Node { private: long _ID; //结点号 Point * _Point; //指向结点坐标的指针 vectorArcPoint * ArcCollection ; //与该结点相联接的弧段集合指//针 public: Node() {…}; //构造函数 ~Node() {…}; //析构函数 other Method…; //其他公共操作 } 拓扑弧段及其表示 拓扑弧段指处于两个结点之间的点序列串,可以给弧段定义一个方向,或者定义为数字化弧段时从一个结点到另一个结点的采点方向,或者硬性定义一个方向,定义方向后弧段开始的结点就称为起始结点,弧段结束的结点就称为结束结点,由起始结点到终止结点的方向称为“起终方向”,由终止结点到起始结点的方向称为“终起方向”。弧段起终方向左侧的多边形称为弧段的左多边形,弧段起终方向右侧的多边形称为弧段的右多边形,如果弧段的起始结点或终止结点只与一条弧段相关联,则该弧段称为悬挂弧段,如图2所示弧段L为悬挂弧段。一般可以通过标识悬挂弧段来检测原始矢量数据的质量。 L(悬挂弧段) 图2 图1 弧段一般包括:弧段号、弧段节点坐标串、弧段起始和终止结点、弧段左右多边形,弧段的数据结构可以表示如下: class Arc { private: long _ID; //弧段号 vectorPoint _Points; //弧段节点坐标串指针 Node * _start; //起始结点指针 Node * _end; //终止结点指针 Polygon * _LeftPolygon; //弧段左多边形指针 Polygon * _RightPolygon; //弧段右多边形指针 public: Arc() {…}; //构造函数 ~Arc() {

文档评论(0)

df9v4fzI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档