专业提供论文发表咨询,国际出版,英文期刊投稿咨询,SCI,SSCI,EI源刊,A&HCI,SCOPUS等高端学术咨询服务
扫码关注公众号
微信扫码加好友
学术出版,国际教著,国际期刊,SCI,SSCI,EI,SCOPUS,A&HCI等高端学术咨询
来源:职称驿站所属分类:地质论文发布时间:2011-06-08 17:28:20浏览:84次
摘要:在数字地形图生产的过程中,由于生产的规定不够严格、作业人员作业不规范等原因,造成数据在空间关系上存在各种错误,给数据后续利用带来隐患,必须对数据进行必要的检查。在检查的过程中,利用程序来实现检查,可以大幅度降低生产成本,提高效率,本文主要是在AutoCAD软件平台下,利用AUTOLISP语言编写程序来完成面状地物封闭性的检查。
关键词:AutoCAD,数字地形图,面状地物封闭性检查,AUTOLISP语言,程序检查,实现
0引言
在数字地形图生产的过程中,由于生产的规定不够严格、作业人员作业不规范等原因,造成数据在空间关系上存在各种错误,给数据后续利用带来隐患,必须对数据进行必要的检查。
在数字地形图数据结构检查的过程中,应用程序来实现检查,可以大幅度降低生产成本,提高效率,现在以AUTOLISP语言编写的面状地物封闭性检查程序为例,来谈谈自己的体会。
数字地形图数据中,面状地物是指由封闭的线构成的闭合地物(如房屋、林地等),在GIS系统中由其封闭线构面,面状地物的不封闭直接导致构面拓扑分析错误。作业人员在绘图时由于操作错误或为保持图面的整洁将已闭合的图形断开(如文字注记与地物重合,地类界和其它地物重合等情况)。
1实现方法
面状地物是线形地物的闭合形式,因此构造选择集采用把所有线性地物都选择进来。首先提取实体的地物代码,根据面状地物代码索引表判断实体是否为面状地物,提取组码70的值,判断实体是否闭合。
对于不闭合的面状实体一般采用下列两种方法处理:①对于首尾坐标相同的实体,去掉结尾点运用实体闭合功能使实体闭合。②对于首尾坐标不相同的实体,由于其情况比较复杂,一般不提倡采用自动闭合的方法,可以聚焦其实体,根据具体情况人工干预使其闭合。
2程序主代码
程序文件名:mzdwjc.lsp
(defunc:check-close(/filenamefpone-lineIall-objlenone-nameone-datcordptp1p2flag-closeflagpline-typeflag2point-lst)
(if(notout-lst)
(prong
(setqfilename“out.ini”)
(if(not(findfilefilename))
(prong
(alert”没有找到索引文件OUT.INNn请设置正确的路径!!!”)
(exit))
(setqfilename(findfilefilename)))
(setqfq(poenfilename”r”))
(setqapp-lstnildel-flagnil)
(setqone-lst(read-linefp))
(while(and(/=one-lst”end”)(/=one-lst”END”))
(setqone-lst(strtolst-newone-lst))
(setqout-lst(consone-lstout-lst))
(setqone-lst(read-linefp)))
(setqout-lst(reverseout-lst))
(closefp))
)
(setqI0)(setqs1(getvar”userr1”))
(if(<s11)(setqs1500.0));图形比例尺;
(command”layer”“m”“error”“”);建立层以存放标记实体;
(if(noti-close)(setqi-closei)(setqII-close))
(command“zoom”“e”)
(setqall-obj(ssget“c”(getvar”extmin”)(getvar”extmax”)((-4.”<or”)(0.”POLYLINE”)(0.”LWPOLYLINE”)(-4.”or>”))))
(if(notall-obj)
(prong
(alert”n当前图形没有任何实体”)
(exit)))
(setqlen(sslengthall-obj))
(if(>i-closelen)(setqIlen))
(repeatlen
(setqone-name(ssnameall-obji))
(setqpline-type(cdr(assoc0(entgetone-name))))
(setqone-dat(entgetone-name’(“south”)))
(setqcord(assoc-3one-dat))
(setqcord(cdr(assoc1000(cdadrcord))));地码编码;
(if(and(=nth2(assoccordout-lst))”2”)(or(=pline-type”POLYLINE”)(=pline-type”LWPOLYLINE”)))
(setqpoint-lst(pline-pointone-name)))
(ifpoint-lst
(prong(setqpt(carpoint-lst))
(setqpl(-(carpt)10)(-(cadrpt)10))p2(list(+(carpt)10)(+(cadrpt10)))))
(if(=nth2(assoccordout-lst))”2”)
(prong
(setqflag-close(cdr(assoc70one-dat)))
(if(=(remflag-close2)0)
(prong
(print”n面状地物没有封闭n”)
(if(/=flag4)(setqflag(getint”n1:标记此地物;2:聚焦此地物;3:将地物强行封闭
4:所有地物强行封闭<4>:”)))
(if(and(/=flag1)(/=flag2)(/=flag3)(notflag))(setqflag4))
(if(<=flag1)
(prong
(command”circle”pt(/(*s13)1000)0“此地物没有属性”))
(if(=flag2)
(prong
(command“circle”pt5)
(command“zoom”p1p2)(exit)))
(if(or(=flag3)(=flag4))
(prong
(setqone–dat(subst’(70.129)(assoc70one-dat)one-dat))
(entmodone-dat))))))))
(setqI(1+i))
(alert”面状地物封闭性检查成功”))
3程序功能
1)程序能对不封闭面状地物进行标记;
2)程序能对不封闭面状地物进行聚焦;
3)程序能对不封闭面状地物作强制封闭处理;
4)程序运行速度较快,在数字地形图生产过程中,能够成倍提高生产效率。
4存在的问题
1)因程序用到OUT.INI文件,使用者需要对文件进行编辑,格式如下:
《地形图面状地物封闭性检查程序的实现》
鏂囩珷鍐呭濡傛灉娌¤兘瑙e喅鎮ㄧ殑闂锛屽彲鍏嶈垂鍜ㄨ鍦ㄧ嚎瀛︽湳椤鹃棶鑾峰彇鏈€浣宠В绛斻€�
鑱岀О椹跨珯閮戦噸澹版槑锛�
1銆侀儴鍒嗗唴瀹规潵婧愮綉缁滐紝濡傞渶鍒犻櫎璇疯仈绯绘湰绔欏湪绾夸汉鍛橈紒
2銆佹湰绔欐湇鍔″叏闈紝鍖呮嫭鏈熷垔鎺ㄨ崘銆佽鏂囧彂琛ㄥ挩璇€€佸嚭鐗堢ぞ鍑轰功绛夋湇鍔★紝濡傛湁闇€瑕佽鐐瑰嚮鍦ㄧ嚎鍜ㄨ銆�
3銆佹湰绔欏嚟鍊熷骞寸殑璁烘枃鍙戣〃鍜ㄨ缁忛獙锛屽鏍搞€佸彂琛ㄦ垚鍔熺巼楂樸€�
4銆佹湰绔欐嫢鏈夊骞村浗闄呭嚭鐗堢粡楠岋紝鍑虹増鏈嶅姟鏈変繚璇併€�
本文由职称驿站首发,您身边的高端论文发表学术顾问
文章名称: 地形图面状地物封闭性检查程序的实现
文章地址: https://www.zhichengyz.com/lunwen/jianzhu/dizhi/9363.html
快速预审、投刊前指导、专业学术评审,对文章进行评价
立即咨询校对编辑、深度润色,让稿件符合学术规范,格式体例等标准
立即咨询适用于语句和结构尚需完善和调整的中文文章,确保稿件达到要求
立即咨询数据库包括:期刊、文章、书籍、会议、预印书、百科全书和摘要等
立即咨询让作者在期刊选择时避免走弯路,缩短稿件被接收的周期
立即咨询根据目标期刊格式要求对作者文章进行全面的格式修改和调整
立即咨询帮助作者将稿件提交至目标期刊投稿系统,降低退稿或拒稿率
立即咨询按照您提供的稿件内容,指导完成投稿附信(cover letter)
立即咨询职称驿站 www.zhichengyz.com 版权所有 仿冒必究 鎶曡瘔閭锛�1211130760@qq.com 冀ICP备16002873号-3 站长统计