基于拓扑数据的宗地权属界线自动生成

2014-04-18 07:19庞林保
地理空间信息 2014年3期
关键词:宗地界址逆时针

庞林保

(1.广东省国土资源测绘院,广东 广州 510500)

基于拓扑数据的宗地权属界线自动生成

庞林保1

(1.广东省国土资源测绘院,广东 广州 510500)

在南方CASS中,设计程序批量生成满足技术要求的宗地权属界线,并保持宗地的拓扑数据与南方CASS地形地籍成图软件数据的一致性,保证了地籍测量图的质量。

AutoCAD map 2004;南方CASS;宗地;权属界线;拓扑

AutoCAD Map是目前测绘领域首选的CAD制图平台。它采用开放的架构体系,根据地图制图和GIS等用户的专业特点,进一步开发各种专业应用软件,提供更加全面强大的解决方案,以满足用户的应用需求[1]。

南方测绘公司的成图软件CASS是在AutoCAD基础上开发的成熟软件,已经被广泛应用于地形成图、地籍成图、工程测量3大领域。它面向GIS,使用骨架线实时编辑、简码用户化等技术,也可集成于AutoCAD Map 2004。经过多次升级,现已基本满足城镇地籍数据采集要求[1,2]。 但CASS没有提供宗地的拓扑关系和表结构等的检查,经过GIS软件检查的宗地又不满足权属界线的生成规则,如权属界线要求从左上角即西北角开始[3],沿逆时针方向生成,权属界线的属性表不能和权属调查表一致,利用人工逐宗地更新宗地属性,这一过程极为缓慢,而且容易出错又不易发现。本文将利用通过拓扑检查的宗地自动生成符合技术要求的权属界线,并保持宗地的shp入库数据与CASS地形地籍成图软件数据一致,即保持宗地属性数据库存储及属性与几何对象的一致性[4]。

目前,AutoCAD提供的开发接口有:ObjectARX、.NET、VisualLISP、AutoLisp、VBA等,用户可以根据实际情况和需求决定采用哪一种API进行开发。AutoLisp是由Autodesk公司开发的一种采用LISP(LIStProcessor)程序语言的编程工具。AutoLisp的解释器内嵌在AutoCAD软件包中,因此AutoLisp不需要任何特定的硬件设备,只要系统能够运行AutoCAD,就能运行AutoLisp。AutoLisp是一种唯一的解释型语言,是提供给用户的主要开发工具之一[5]。

1 总体设计

使用全站仪利用极坐标法或距离交会等方法进行全野外点位数据的采集,在计算机上使用南方CASS7.1测绘软件编辑成图,然后经过格式转换成宗地shp格式,录入属性数据。用ArcGIS软件对宗地shp文件进行图形逻辑、宗地拓扑关系、表结构、宗地面积、图层字段取值、要素代码一致性、地籍编号、宗地与房屋的拓扑关系检查,通过软件检查合格后即生成宗地拓扑数据,将宗地拓扑数据导入基于AutoCAD Map 2004的南方CASS7.1测绘软件。通过程序查找每个宗地的西北角,并且逆时针生产权属界线,利用宗地的属性表给权属界线的宗地属性赋值,完成宗地的成图数据和入库的拓扑数据一致。

2 程序设计

基于拓扑数据的宗地权属界线自动生成程序开发需要经过查找宗地的西北角、逆时针排列界址点和赋值权属界线的宗地属性3个环节。

2.1 查找宗地西北角

图1 查找西北角过程图

假定宗地某点是西北界址点,如图1的J1,西北角点名设定为按顺序与下一个界址点比较。如果下一个界址点在的西北方向,即下一个界址点位为如果下一个界址点不在的西北方向,则跳过,再与下一个界址点比较,直至比较完所有的界址点,最后设定的即为宗地的西北角。如图1,从J1开始查找,第1轮查出J5在J1的西北,以J5为宗地的西北角继续往下查找,第2轮查出J6在J5的西北,然后以J6为宗地的西北角继续往下查找,最后查找到的J7不在J6的西北,即J6为该宗地的西北角。最后以为起点,按照现有顺序排列宗地界址点坐标。采用Autolisp语言基于AutoCAD Map 2004进行程序设计[6],程序的主要语句如下,其中xs为界址点的x列表,ys为界址点的y列表。

(setq pt1 (list (nth 0 xs) (nth 0 ys)))

(setq angs nil)

(setq wxibei 0); 西北角在目前界址点列表中的顺序

(setq ii 0)

(setq listlength (length xs))

(repeat listlength

(setq pt2 (list (nth ii xs) (nth ii ys)))

(setq ang (angle pt1 pt2))

(if (and (>= ang (* pi 0.25)) (<= ang (* pi 1.25)));找出西北方向的点

(progn

(setq wxibei ii)

(setq pt1 pt2)

))

(setq ii (+ ii 1))

)

(setq ii 0 xsc nil ysc nil);xsc ysc为重新排列的坐标表

(repeat listlength;重新排列界址线点坐标,以西北角为起点

(setq xsc (append xsc (list (nth wxibei xs))))

(setq ysc (append ysc (list (nth wxibei ys))))

(setq wxibei (+ wxibei 1))

(if (> wxibei (- listlength 1)) (setq wxibei 0))

)

由于界址线经过拓扑处理,不存在回头线的情况,因此不会出现y1=y2=y3的情况。当界址线方向为顺时针时,即反转界址点重新生成界址线,程序的主要语句如下:

(setq x1 (nth (- listlength 1) xsc) y1 (nth (- listlength 1) ysc))

(setq x2 (nth 0 xsc) y2 (nth 0 ysc))

(setq x3 (nth 1 xsc) y3 (nth 1 ysc))

(setq bshui 2);1为顺时针,2为逆时针

(setq pt1 (list x1 y1) pt2 (list x2 y2) pt3 (list x3 y3))

(setq ang1 (angle pt2 pt1) ang2 (angle pt2 pt3))

(if (or(and (> y1 y2) (> y3 y2)) (and (> y2 y1) (> y2 y3)))

(progn

(if (> ang1 ang2) (setq bshui 2) (setq bshui 1))

)

(progn

(if (< ang1 ang2) (setq bshui 2) (setq bshui 1))

)

)

(if (= bshui 1);如果坐标列表为顺时针,即把坐标列表重新排列成逆时针

(progn

(setq xsc1 xsc ysc1 ysc)

(setq xsc1 (reverse xsc1))

2.2 逆时针排列界址点

如图2所示,P1(x1,y1)、P2(x2,y2)、P3(x3,y3)分别为宗地界址线最后一个界址点、西北角界址点和西北角下一个界址点,ɑ1和ɑ2分别为向量P2P1和向量P2P3相对于X轴的角度。如上一步所述,ɑ1<45°或ɑ1>225°,同样,ɑ2<45°或ɑ2>225°,界址线顺序出现如下2种情况。

图2 界址线方向判定

1)当ɑ1<45°,即y1≥y2时,界址线的方向如表1统计的4种情况。

表1 ɑ1<45°时界址线方向

2)当ɑ1>225°,即y1<y2时,界址线的方向如表2统计的4种情况。

表2 ɑ1>225°时界址线方向

(setq ysc1 (reverse ysc1))

(setq xsc nil ysc nil)

(setq ii (- listlength 1))

(setq xsc (append xsc (list (nth ii xsc1))));反转后最后一点即为反转前第一点,也就是西北角坐标.

(setq ysc (append ysc (list (nth ii ysc1))))

(setq ii 0)

(repeat (- listlength 1)

(setq xsc (append xsc (list (nth ii xsc1))))

(setq ysc (append ysc (list (nth ii ysc1))))

(setq ii (+ ii 1))

)

)

)

2.3 权属界线赋值宗地属性

经过GIS软件,利用属性表关联把调查数据挂接到界址线,把界址线导入到AutoCAD Map 2004中,通过读取界址线的对象数据,利用获得的对象数据更新界址线基于南方CASS的宗地属性,南方CASS的宗地属性是以扩展数据的形式存储在文件中的[7]。程序的主要语句如下:

(setq xzqhdm (ade_odgetfield ent_h st_table "XZQHDM" 0));行政区划代码

(setq qlrsfz (ade_odgetfield ent_h st_table "QDDH" 0));权利人身份证

(setq tdzh (ade_odgetfield ent_h st_table "TFDH" 0));土地证号

…………

(setq dlbm (ade_odgetfield ent_h st_table "TDYT" 0));地类编码)

(setq south (cons "SOUTH" (list (cons 1000 stbm) (cons 1000 djh1) (cons 1000 qlrh) (cons 1000 dlbm)) ));南方编码

(setq qhdm (cons "QHDM" (list (cons 1000 (strcat xzqhdm xzjddm chsqdm)))));行政代码

(setq sjzgbm (cons "SJZGBM" (list (cons 1000 "")) ));行政主管部门

(setq frdbxm (cons "FRDBXM" (list (cons 1000 frdb)) ));法人代表姓名

(setq frdbzms (cons "FRDBZMS" (list (cons 1000 qlrsfz)) ));法人代表证明书

(setq frdbdh (cons "FRDBDH" (list (cons 1000 ""))));法人代表代号

(setq dlrxm (cons "DLRXM" (list (cons 1000 ""))));代理人姓名

(setq dlrsfz (cons "DLRSFZ" (list (cons 1000 ""))));代理人身份证

(setq dlrdh (cons "DLRDH" (list (cons 1000 ""))));代理人代号

(setq txdz (cons "TXDZ" (list (cons 1000 txdz))));通信地址

(setq tdzl (cons "TDZL" (list (cons 1000 tdzl))));土地坐落

(setq dongzhi (cons "DONGZHI" (list (cons 1000 dongzhi))));东至

(setq nanzhi (cons "NANZHI" (list (cons 1000 nanzhi))));南至

(setq xizhi (cons "XIZHI" (list (cons 1000 xizhi))));西至

(setq beizhi (cons "BEIZHI" (list (cons 1000 beizhi))));北至

(setq qslyzm (cons "QSLYZM" (list (cons 1000 qslyzm))));权属来源证明

(setq pztdyt (cons "PZTDYT" (list (cons 1000 dcqk))));批准土地用途,调查情况

(setq tdsyz (cons "TDSYZ" (list (cons 1000 qlrh))));土地使用者

(setq ybdjh (cons "YBDJH" (list (cons 1000 ybdjh))));预编地籍号

(setq tdzh (cons "TDZH" (list (cons 1000 tdzh))));土地证号

(setq shrq (cons "SHRQ" (list (cons 1000 ""))));审核日期

(setq djrq (cons "DJRQ" (list (cons 1000 ""))));登记日期

(setq zzrq (cons "ZZRQ" (list (cons 1000 ""))));终止日期

(setq dwxz (cons "DWXZ" (list (cons 1000 ""))));单位性质

(setq qsxz (cons "QSXZ" (list (cons 1000 qsxz))));权属性质

(setq syqlx (cons "SYQLX" (list (cons 1000 syqlx))));使用权类型

(setq tddj (cons "TDDJ" (list (cons 1000 ""))));土地等级

(setq mph (cons "MPH" (list (cons 1000 mph))));门牌号

(setq jzmj (cons "JZMJ" (list (cons 1040 jzmj))));建筑面积

(setq new_list (cons -3 (list south qhdm sjzgbm frdbxm frdbzms frdbdh dlrxm dlrsfz dlrdh txdz tdzl dongzhi nanzhi xizhi beizhi qslyzm pztdyt tdsyz sbjzwqs ybdjh tdzh shrq djrq zzrq dwxz qsxz syqlx tddj mph jzmj bddj sbdj)))

(if (assoc -3 jzx_list)

(setq jzx_list (subst new_list (assoc -3 jzx_list) jzx_list))

(setq jzx_list (append jzx_list (list new_list)))

)

(entmod jzx_list);更新界址线属性

3 功能实现

在番禺区钟村街道城镇地籍调查中,把通过拓扑检查的带有调查属性的宗地文件导入AutoCAD Map中,利用本程序生成宗地界线,能满足地方国土对于宗地图和地籍图的出图要求,且宗地属性和入库的shape file数据一致,不需人工干预,能提高工作效率。结果如图3所示,对话框为南方CASS的宗地属性,右侧列表为入库的shape file数据。

图3 应用示例

[1] 刘明义,刘晓平,陈春华,等.CASS在城镇地籍数据库建设中的应用[J].地理空间信息,2007,5(4):117-119

[2] 陈一舞,吴龙翔,谢刚生,等.南方CASS到MapGIS数据转换的实现[J].测绘通报,2010 (3):61-62

[3] TD/T 1001-2012.地籍调查规程[S].

[4] 吴千里,马小龙.面向城市规划信息化的GIS与CAD集成技术探讨[J].测绘通报,2010 (2):52-55

[5] 张锋,陈爱萍.AutoCAD二次开发环境的探讨[J].机械设计与制造,2005(9):125-128

[6] 李长勋.AutoCAD Visual LISP 程序开发技术[M].北京:国防工业出版社,2005

[7] 韩江峰,邓敏,徐枫,等.CAD宗地数据向Geodatabase自动转换方法研究[J].测绘通报,2009(9):58-61

P208

B

1672-4623(2014)03-0146-03

10.11709/j.issn.1672-4623.2014.03.049

庞林保,注册测绘师,测绘工程师,主要从事地形测量、工程测量、大地测量、海洋测绘、地籍测量、航测遥感等工作。

2014-01-09。

猜你喜欢
宗地界址逆时针
逆时针旋转的水
CASS地籍图中界址信息批量转出方法研究
地籍调查成果在数字时代下的管理研究
心情不好
逆时针跑,还是顺时针跑?
地籍数据库点线拓扑一致性并行检查方法*
逆时针跑,还是顺时针跑?
基于宗地层次的合肥市产业用地集约利用评价
在ArcMap中实现对金图建库系统中界址线属性的便捷录入
地籍宗地时空数据库中的变化检测