基于如何实现ObjectARX的地形图自动接边方法.docVIP

基于如何实现ObjectARX的地形图自动接边方法.doc

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

基于如何实现ObjectARX的地形图自动接边方法 来源:计算机与信息技术 作者:周醉 发表于:2010-01-18 09:36  点击:128次 【关健词】地形图;自动接边;ObjectARX 关键字 地形图;自动接边;ObjectARX 摘 要 本文介绍了一种地形图自动接边的方法,分析了地形图自动接边中的关键技术,并在VS2002平台下利用ObjectARX开发包进行二次开发,实现了同比例尺地形图的自动接边。 1 引言(基于如何实现ObjectARX的地形图自动接边方法) 由于各种地形图采用分幅管理,造成各种地理要素被分割。在图形数字化过程中,地理要素有可能发生空间错位或者属性错填漏填。当导入多幅图幅时,就可看到在一些图幅边缘处产生明显的“断裂带”。而目前地形图接边工作大部分采用人工接边,工作量大且易出错。为提高接边效率,本文提出了一种地形图的接边方法,采用ObjectARX开发包进行二次开发,实现了同比例尺地形图的自动接边。(基于如何实现ObjectARX的地形图自动接边方法) 2 同比例尺地形图自动接边的流程(基于如何实现ObjectARX的地形图自动接边方法) 2.1 自动接边的原则 自动接边遵循如下原则: (1)同一种类的地理实体。 (2)错位的距离在规定的容差范围内。 (3)指定的属性能够完全匹配。 2.2 自动接边的总体思路 (1)导入要进行合并的图幅。(基于如何实现ObjectARX的地形图自动接边方法) (2)在图幅间绘制一条分界线。 (3)选中此分界线,构造缓冲区。利用acedSSGet(C,pt1,pt2,NULL,ssname)在指定范围内构造选择集。缓冲区一边的地理实体放入第一个选择集 ,缓冲区另一边的地理实体放入第二个选择集。 (4)遍历第一个选择集,得到的第一个实体与第二个选择集中的所有实体进行匹配,如果符合自动接边的原则,将两个地理实体自动拼接并实现属性数据的更新。 3 同比例尺地形图自动接边的关键技术 3.1 线状实体自动接边关键技术 3.1.1 线状实体自动接边的思路 线状实体的合并是利用一个实体的属性找到与其属性相互匹配的另一个实体,然后判断两个线状实体的合并点距离是否在容差范围内,如果这个距离在容差范围内就进行拼接,最后处理拼接处的重叠点。 3.1.2 线状实体自动接边的方法(基于如何实现ObjectARX的地形图自动接边方法) 1)构造结构体 struct buf { AcGePoint3d Point;//存放多段线节点的坐标值 struct buf *rbprevious;//存放上一个结点的地址 struct buf *rbnext;//存放下一个结点的地址} 2)构造链表(基于如何实现ObjectARX的地形图自动接边方法) 对多段线进行链表的构造是从多段线的起始点开始遍历整条多段线从而构造链表,见图1。链表中的每个结点存放三个数据:上一个结点的地址,下一个结点的地址,本结点所对应的多段线节点的坐标值。 图 1 构造链表 构造多段线链表的关键代码如下: if(pEnt-isKindOf(AcDbPolyline::desc())){ AcDbPolyline *pPoly = AcDbPolyline::cast(pEnt); linetype = pPoly-linetype(); layer = pPoly-layer(); pPoly-getConstantWidth(width); for(int I = 0;ipPoly-numVerts();i++){ pPoly-getPointAt(i,pt); pWalk-Point = pt; p2 = pWalk; if(i==0){ pRblianbiao = pWalk; pWalk-rbprevious = NULL; p1 = new buf; pWalk-rbnext =p1; pWalk = p1; pWalk-rbprevious =p2;} else{ p1 = new buf; pWalk-rbnext =p1;(责任编辑:南粤论文中心)转贴于南粤 南粤论文中心-WWW.NYLW.NET pWalk = p1; pWalk-rbprevious =p2;}}} p2-rbnext = NULL; pWalk = p2; 3)合并链表 (基于如何实现ObjectARX的地形图自动接边方法

文档评论(0)

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

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

1亿VIP精品文档

相关文档