基于AutoCAD土地整理规划算法设计与应用.docVIP

基于AutoCAD土地整理规划算法设计与应用.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文档。上传文档
查看更多
基于AutoCAD土地整理规划算法设计与应用

基于AutoCAD土地整理规划算法设计与应用   摘 要:土地整理规划设计的内容比较广,不仅需要强大的矢量化和绘图功能,还需要涉及土地利用的各种属性数据的查询与统计功能,传统的方法主要通过AutoCAD和MapInfo或ArcGIS等软件进行操作,这种方法需频繁进行不同数据格式之间的转换工作,从而大大降低了土地整理规划的效率。为克服这一问题,该文应用VC++结合ObjectArx对AutoCAD进行二次开发,并最终在AutoCAD中实现对各种土地利用信息的查询、统计等操作以及土地整理相关工程量的计算等功能。   关键词:土地整理规划;AutoCAD;系统设计;土石方量计算   中图分类号 F321.1 文献标识码 A 文章编号 1007-7731(2014)05-08-03   土地整理是实现耕地总量动态平衡,推进土地节约、集约利用的重要途径之一[1-2]。我国是一个人口多、耕地少、耕地总体质量差、耕地后备资源不足的发展中国家。近年来,我国人口不断持续增长,耕地不断减少,人地矛盾越发突出[3]。因此,进行土地整理,增加农用地面积,特别是耕地面积,提高农用地质量,对推动我国经济发展、稳定社会秩序具有重要意义。   实施土地整理项目前必须做好项目规划设计工作。土地整理的规划设计涉及的内容比较广,不仅需要强大的矢量化和绘图功能,还需要涉及土地利用的各种属性数据的统计功能[4],传统的方法主要通过AutoCAD和MapInfo、MapGIS或ArcGIS等软件进行操作,这种方法常常需频繁进行不同数据格式之间的转换工作,从而大大增加了土地整理规划的工作量,降低了土地整理规划的效率。为了克服这一不足,本文设计应用VC++结合ObjectArx对AutoCAD进行二次开发,并最终在AutoCAD中实现对各种土地利用信息的查询、统计等操作以及土地整理相关工程量的计算等功能。ObjectArx编程是一种动态链接库(dll)编程,其生成的动态链接库文件在AutoCAD程序调用时被加载,与AutoCAD应用程序共享地址空间,可以直接访问AutoCAD的图形数据库[5-7]。   1 土地利用信息查询与统计算法设计   1.1 算法功能 本文设计的算法主要为实现根据不同的土地利用分类方法进行相应的查询与统计操作,具体实现了以下3项功能:(1)根据权属查询指定区域内的土地利用信息;(2)根据地类查询指定区域内的土地利用信息;(3)根据特殊条件查询指定区域内的土地利用信息,如查询某条沟渠沿线的土地利用信息等。   1.2 算法设计及实现 上述功能的实现方法大致相同,因此,笔者仅以功能(1),即根据权属查询指定区域内的土利用信息为例,此算法具体分为以下6个步骤:   第一步:确定需要查询的区域。调用函数acedSSGet()创建选择集,并将选择结果存入变量ssName中;然后,调用函数acedSSLength()提取实体,选择集中实体的数目,遍历选择集ssName,提取其中多段线实体ID并存入数组objIdArray中;最后调用函数acedSSFree()删除选择集ssName。   第二步:添加查询条件(关键字)。调用函数acedGetString()提示用户从命令行输入查询或统计条件,并将用户输入的字符串存入字符型数组strFactor中。   第三步:找出符合查询条件的图斑。遍历实体ID数组objIdArray,调用函数acdbOpenObject()打开实体,并将指向实体的指针存入变量pPoly中;调用函数AcDbEntity::Layer()提取实体所在图层,即图斑的权属;最后判断该信息与指定的查询或统计条件是否相符。若不相符则继续下一个实体;若符合查询条件则转入第四步,进一步提取图斑的信息。   第四步:提取符合条件的图斑信息。包括:(1)提取图斑地类信息。调用函数AcDbPolyline::elevation()提取多段线的高程字段的信息,存入变量tmpElevation中,由前述可知,该信息中含有两部分内容:小数点之前的部分为图斑编号,小数点之后的部分为地类代码。因此,将tmpElevation转换为字符型变量tmpData,然后以小数点为界将tmpData分割成2个字符串,即可得到该图斑的图斑编号和地类代码,然后将其分别存入字符串变量numofMapSpot及numofLandCategory中。(2)提取图斑几何信息。图斑的几何信息包括图斑的面积、图斑边界拐点坐标、图斑边界长度等。这些信息都可通过调用类AcDbPolyline的内部函数获取,如提取图斑面积,只需调用函数AcDbPolyline::getArea()即可。   第五步:显示图斑信息结果。自定义一个对话框类,然后,添加成员变量负责接收上述查询或统计结果,并添加一个list

文档评论(0)

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

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

1亿VIP精品文档

相关文档