勘界测量分类面积计算和统计方法的研究.doc

上传人:gs****r 文档编号:1582335 上传时间:2019-03-06 格式:DOC 页数:9 大小:117KB
下载 相关 举报
勘界测量分类面积计算和统计方法的研究.doc_第1页
第1页 / 共9页
勘界测量分类面积计算和统计方法的研究.doc_第2页
第2页 / 共9页
勘界测量分类面积计算和统计方法的研究.doc_第3页
第3页 / 共9页
勘界测量分类面积计算和统计方法的研究.doc_第4页
第4页 / 共9页
勘界测量分类面积计算和统计方法的研究.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、1勘界测量分类面积计算和统计方法的研究提要:本文阐述了使用 ABDRS 软件结合用 AutoLISP 语言编制的应用程序,进行土地分类面积的计算和统计,自动提取碎部面积量算表和土地分类面积统计表等工作的方法。 关键词:土地分类面积;ABDRS 软件;图斑面积;AutoLISP 语言 Abstract:This text has explained that uses ABDRS software to combine the application program worked out in AutoLISP language ,Carry on the calculation and sta

2、tistics of the categorised area of land ,Draw the method to regard as such work as expressing and statistical form of categorised area of land ,etc. of area amount of breaking to pieces department automatically . Key words: Categorised area of land;ABDRS software ;Pursue the area of spot;AutoLISP la

3、nguage 中图分类号:TU91 文献标识码:A 文章编号: 1、引言 勘测定界测量就是根据农用地转用、土地征用等工作的需要,实地确定用地范围,测量界址总坐标,实测土地利用现状和权属情况,计算2土地分类面积,编制勘测定界测量报告,为农用地转征用报批等国土资源管理工作提供科学准确的图、数、资料的测绘技术工作。前期外业的勘界测量采用 CASS、清华三维等软件可完成,对于后期内业的土地分类面积的计算和统计等工作没有统一的软件进行处理,使用的方法较多,ABDRS 软件结合用 AutoLISP 语言编制的应用程序来处理土地分类面积是其中的一种方法,ABDRS 软件是由中国建筑科学研究院研制的计算房产面

4、积的软件,建立在 AutoCAD 平台上,计算房产面积和土地分类面积有较多相同的地方,因此利用它结合应用程序能较快地计算出土地分类的面积。 2、制作基本数据 启动 ABDRS 软件,在外业测绘的数据资料基础,按土地分类原则圈注图斑(土地分类) ; 检查各图斑是否封闭,如果图斑没有封闭的地方,有小红圆圈标注,修改不封闭的图斑,反复进行几次,直至所有图斑完全封闭; 和生成各图斑面积,面积的单位为平方米; 定义图斑的地类属性和权属,由四位数组成,前三位为地类属性编码,第四位为权属单位的编号,例如 1112,111 表示地类属性的灌溉水田,2 表示权属单位的编号 ; 定义图斑的编号。由上述各步生成的土

5、地分类面积图(*.dwg)见图 1。 3、程序编写思路及代码 3(1)程序编写思路 将在 ABDRS 下生成的图形转换成符合国土管理部门要求的勘测定界图,其中图斑号、面积、土地地类属性分别自动存入图斑号层、面积层、地类代码层,这样便于下一步工作的管理。土地分类面积由平方米转换为公顷,自动提取碎部面积量算表和土地分类面积统计表,作为编制勘测定界报告的基本依据。 (2)建立表格模型和程序主要代码 建立碎部面积量算表和土地分类面积统计表两个表格模型文件,分别命名为 tbb.dwg 和 tbb1.dwg,其表格格式见图 2。 利用 AutoLISP 语言编制的程序主要代码: (defun create

6、_biao (list0 type0 / list0 pr0 xy0 x0 y0 x00 y00 len0 num nn inse_xy n end0 k nth0sh tbh dl mj qsdw_x1 qsdw_y1 tbh_x1 dl_x1 mj_x1 ) (setq pr0 (strcat “n 请点取生成“ type0 “左上角位置:“) (setq xy0 (getpoint pr0) (setq x0 (car xy0) (setq y0(nth 1 xy0) (setq x00 x0 y00 y0) (setq y0 (- y0 2.5) (setq len0 (length

7、list0) (setq num(fix (/ len037.00) ) (if ( len0 num) (setq num (1+ num) ) 4(setq num (atoi (rtos num 2 0) (setq nn 1) (repeatnum (setq x00 (+ x0 (* (- nn 1) 180) ) (setq inse_xy (list x00 y00) (if (= type0 “图斑量算表“)(command “insert“ “tbb“ inse_xy “1“ “1“ “0“) (command “insert“ “tbb1“ inse_xy “1“ “1“

8、“0“) (setq n 0 ) (setq n (* (- nn 1) 37) (setq end0 (*nn 37) (if ( end0 len0 ) (Setq end0 len0) (setq k 0) (while( n end0) (setq nth0 (nth n list0) (setq sh (nth 1 nth0) (setq tbh (nth 2 nth0) (setq dl (nth 3 nth0) (setq mj (nth 4 nth0) (setq qsdw_x1 (+11x00) (setq qsdw_y1 (- y0 (* 5 k) ) (setq k (1

9、+ k) 5(setq tbh_x1 (+33x00) (setq dl_x1 (+58x00) (setq mj_x1 (+92x00) (command “text“ “s“ “hz“ “j“ “m“ (list qsdw_x1 qsdw_y1) “2“ “0“ sh) (command “text“ “s“ “hz“ “j“ “m“ (list tbh_x1 qsdw_y1) “2“ “0“ tbh) (command “text“ “s“ “hz“ “j“ “m“ (list dl_x1 qsdw_y1) “2“ “0“ dl) (command “text“ “s“ “hz“ “j“

10、 “m“ (list mj_x1 qsdw_y1) “2“ “0“ mj) (setq n (1+ n) ) (setq nn (1+ nn) (defun get_total (list0 cm_list dl_list / n list1 cm0 k0 dl0 i s sh1 dl1 mj1 line0 k) (setq n 0 list1 nil) (while (setq cm0 (nth n cm_list) (setq cm 0 (car cm0) (setq k 0) (while (setq dl0 (nth k dl_ list) 6(setq dl0 (car dl0) (

11、setq i 0 s 0) (while (setq nth 0 (nth i list 0) (setq sh1 (nth 1 nth 0) (setq dl1 (nth 3 nth 0) (setq mj1 (nth 4 nth 0) (if (and (= sh1 cm0) (= dl1 dl0) (setq s (+ s (atof mj1) (setq i (1+ i) (if (/= s 0)(progn (setq line0 (list “汇总“ cm0“ dl0 (rtos S 2 4) (setq list 1 (append list 1 (list line0) (se

12、tq k (1+ k) ) (setq n (1+ n) list1) (defun get_cm_dl (list0 / n nth0 sh1 dl1 if0 if1 list0 ) (setq n 0 cm_list nil dl_list nil) (while (setq nth0 (nth n list0) (setq sh1 (nth 1 nth0) (setq dl1 (nth 3 nth0) 7(setq if0 (assoc sh1 cm_list) (if (not if0) (setq cm_list (append cm_list (list (list sh1) (s

13、etq if1 (assoc dl1 dl_list) (if (not if1) (setq dl_list (append dl_list (list (list dl1) (setq n (1+ n) ) (setq dl_list (abc dl_list) (setq cm_list (abC cm_list) (defun change_list0 (list0 / n 0 sh0 sh1 nth0 nth1 nth2 s list0 list1 total_s) (setq n 0 sh0 (nth 1 (nth 0 list0)s 0 list1 nil total_s 0)

14、(while (setq nth0 (nth n list0) (setq sh1 (nth 1 nth0) (if (= sh0 sh1)(progn (setq s (+ s (atof (nth 4 nth0) (setq total_s (+ total_s (atof (nth 4 nth0) (if (= n 0)(setq list1 (append list1 (list nth0) (setq list1 (append list1 (list (list (nth 0 nth0) “ (nth 2 nth0) (nth 3 nth0) (nth 4 nth0) (progn

15、 8(setq nth1 (list sh0 “小计“ “ “ (rtos s 2 4) (setq list1 (append list1 (list nth1) (setqs 0) (setq s (+ s (atof (nth 4 nth0) (setq total_s (+ total_s (atof (nth 4 nth0) (setq list1 (append list1 (list nth0) (setq sh0 sh1) (setq n (1+ n) ) (setq nth1 (list sh0 “小计“ “ “ (rtos s 2 4) (setq list1 (appen

16、d list1 (list nth1) (setq nth2 (list “合计“ “合计“ “ “ (rtos total_s 2 4) (setq list1 (append list1 (list nth2) list1) (defun abc ( sort_list / ll new_list min_num lst0 sort_list) (setq new_list () (repeat (length sort_list) (setq min_num nil lst0 nil) (foreach ll sort_list (if ll (if (not min_num)(setq min_num (car ll) lst0 ll) (if ( (car ll) min_num) (setq min_num (car ll) lst0 ll) ) ) ) (if min_num (setq new_list (append new_list (list lst0) 9sort_list (subst nil lst0 sort_list) new_list) (defun c:kjmj ( / ss n ent ent_tbh ent_mj ent_dl_sh tbh mj dl_sh dl sh_tbh list0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。