龐林保
(1.廣東省國(guó)土資源測(cè)繪院,廣東 廣州 510500)
基于拓?fù)鋽?shù)據(jù)的宗地權(quán)屬界線自動(dòng)生成
龐林保1
(1.廣東省國(guó)土資源測(cè)繪院,廣東 廣州 510500)
在南方CASS中,設(shè)計(jì)程序批量生成滿足技術(shù)要求的宗地權(quán)屬界線,并保持宗地的拓?fù)鋽?shù)據(jù)與南方CASS地形地籍成圖軟件數(shù)據(jù)的一致性,保證了地籍測(cè)量圖的質(zhì)量。
AutoCAD map 2004;南方CASS;宗地;權(quán)屬界線;拓?fù)?/p>
AutoCAD Map是目前測(cè)繪領(lǐng)域首選的CAD制圖平臺(tái)。它采用開(kāi)放的架構(gòu)體系,根據(jù)地圖制圖和GIS等用戶(hù)的專(zhuān)業(yè)特點(diǎn),進(jìn)一步開(kāi)發(fā)各種專(zhuān)業(yè)應(yīng)用軟件,提供更加全面強(qiáng)大的解決方案,以滿足用戶(hù)的應(yīng)用需求[1]。
南方測(cè)繪公司的成圖軟件CASS是在AutoCAD基礎(chǔ)上開(kāi)發(fā)的成熟軟件,已經(jīng)被廣泛應(yīng)用于地形成圖、地籍成圖、工程測(cè)量3大領(lǐng)域。它面向GIS,使用骨架線實(shí)時(shí)編輯、簡(jiǎn)碼用戶(hù)化等技術(shù),也可集成于AutoCAD Map 2004。經(jīng)過(guò)多次升級(jí),現(xiàn)已基本滿足城鎮(zhèn)地籍?dāng)?shù)據(jù)采集要求[1,2]。 但CASS沒(méi)有提供宗地的拓?fù)潢P(guān)系和表結(jié)構(gòu)等的檢查,經(jīng)過(guò)GIS軟件檢查的宗地又不滿足權(quán)屬界線的生成規(guī)則,如權(quán)屬界線要求從左上角即西北角開(kāi)始[3],沿逆時(shí)針?lè)较蛏?,?quán)屬界線的屬性表不能和權(quán)屬調(diào)查表一致,利用人工逐宗地更新宗地屬性,這一過(guò)程極為緩慢,而且容易出錯(cuò)又不易發(fā)現(xiàn)。本文將利用通過(guò)拓?fù)錂z查的宗地自動(dòng)生成符合技術(shù)要求的權(quán)屬界線,并保持宗地的shp入庫(kù)數(shù)據(jù)與CASS地形地籍成圖軟件數(shù)據(jù)一致,即保持宗地屬性數(shù)據(jù)庫(kù)存儲(chǔ)及屬性與幾何對(duì)象的一致性[4]。
目前,AutoCAD提供的開(kāi)發(fā)接口有:ObjectARX、.NET、VisualLISP、AutoLisp、VBA等,用戶(hù)可以根據(jù)實(shí)際情況和需求決定采用哪一種API進(jìn)行開(kāi)發(fā)。AutoLisp是由Autodesk公司開(kāi)發(fā)的一種采用LISP(LIStProcessor)程序語(yǔ)言的編程工具。AutoLisp的解釋器內(nèi)嵌在AutoCAD軟件包中,因此AutoLisp不需要任何特定的硬件設(shè)備,只要系統(tǒng)能夠運(yùn)行AutoCAD,就能運(yùn)行AutoLisp。AutoLisp是一種唯一的解釋型語(yǔ)言,是提供給用戶(hù)的主要開(kāi)發(fā)工具之一[5]。
使用全站儀利用極坐標(biāo)法或距離交會(huì)等方法進(jìn)行全野外點(diǎn)位數(shù)據(jù)的采集,在計(jì)算機(jī)上使用南方CASS7.1測(cè)繪軟件編輯成圖,然后經(jīng)過(guò)格式轉(zhuǎn)換成宗地shp格式,錄入屬性數(shù)據(jù)。用ArcGIS軟件對(duì)宗地shp文件進(jìn)行圖形邏輯、宗地拓?fù)潢P(guān)系、表結(jié)構(gòu)、宗地面積、圖層字段取值、要素代碼一致性、地籍編號(hào)、宗地與房屋的拓?fù)潢P(guān)系檢查,通過(guò)軟件檢查合格后即生成宗地拓?fù)鋽?shù)據(jù),將宗地拓?fù)鋽?shù)據(jù)導(dǎo)入基于AutoCAD Map 2004的南方CASS7.1測(cè)繪軟件。通過(guò)程序查找每個(gè)宗地的西北角,并且逆時(shí)針生產(chǎn)權(quán)屬界線,利用宗地的屬性表給權(quán)屬界線的宗地屬性賦值,完成宗地的成圖數(shù)據(jù)和入庫(kù)的拓?fù)鋽?shù)據(jù)一致。
基于拓?fù)鋽?shù)據(jù)的宗地權(quán)屬界線自動(dòng)生成程序開(kāi)發(fā)需要經(jīng)過(guò)查找宗地的西北角、逆時(shí)針排列界址點(diǎn)和賦值權(quán)屬界線的宗地屬性3個(gè)環(huán)節(jié)。
2.1 查找宗地西北角
圖1 查找西北角過(guò)程圖
假定宗地某點(diǎn)是西北界址點(diǎn),如圖1的J1,西北角點(diǎn)名設(shè)定為按順序與下一個(gè)界址點(diǎn)比較。如果下一個(gè)界址點(diǎn)在的西北方向,即下一個(gè)界址點(diǎn)位為如果下一個(gè)界址點(diǎn)不在的西北方向,則跳過(guò),再與下一個(gè)界址點(diǎn)比較,直至比較完所有的界址點(diǎn),最后設(shè)定的即為宗地的西北角。如圖1,從J1開(kāi)始查找,第1輪查出J5在J1的西北,以J5為宗地的西北角繼續(xù)往下查找,第2輪查出J6在J5的西北,然后以J6為宗地的西北角繼續(xù)往下查找,最后查找到的J7不在J6的西北,即J6為該宗地的西北角。最后以為起點(diǎn),按照現(xiàn)有順序排列宗地界址點(diǎn)坐標(biāo)。采用Autolisp語(yǔ)言基于AutoCAD Map 2004進(jìn)行程序設(shè)計(jì)[6],程序的主要語(yǔ)句如下,其中xs為界址點(diǎn)的x列表,ys為界址點(diǎn)的y列表。
(setq pt1 (list (nth 0 xs) (nth 0 ys)))
(setq angs nil)
(setq wxibei 0); 西北角在目前界址點(diǎn)列表中的順序
(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)));找出西北方向的點(diǎn)
(progn
(setq wxibei ii)
(setq pt1 pt2)
))
(setq ii (+ ii 1))
)
(setq ii 0 xsc nil ysc nil);xsc ysc為重新排列的坐標(biāo)表
(repeat listlength;重新排列界址線點(diǎn)坐標(biāo),以西北角為起點(diǎn)
(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))
)
由于界址線經(jīng)過(guò)拓?fù)涮幚?,不存在回頭線的情況,因此不會(huì)出現(xiàn)y1=y2=y3的情況。當(dāng)界址線方向?yàn)轫槙r(shí)針時(shí),即反轉(zhuǎn)界址點(diǎn)重新生成界址線,程序的主要語(yǔ)句如下:
(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為順時(shí)針,2為逆時(shí)針
(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);如果坐標(biāo)列表為順時(shí)針,即把坐標(biāo)列表重新排列成逆時(shí)針
(progn
(setq xsc1 xsc ysc1 ysc)
(setq xsc1 (reverse xsc1))
2.2 逆時(shí)針排列界址點(diǎn)
如圖2所示,P1(x1,y1)、P2(x2,y2)、P3(x3,y3)分別為宗地界址線最后一個(gè)界址點(diǎn)、西北角界址點(diǎn)和西北角下一個(gè)界址點(diǎn),ɑ1和ɑ2分別為向量P2P1和向量P2P3相對(duì)于X軸的角度。如上一步所述,ɑ1<45°或ɑ1>225°,同樣,ɑ2<45°或ɑ2>225°,界址線順序出現(xiàn)如下2種情況。
圖2 界址線方向判定
1)當(dāng)ɑ1<45°,即y1≥y2時(shí),界址線的方向如表1統(tǒng)計(jì)的4種情況。
表1 ɑ1<45°時(shí)界址線方向
2)當(dāng)ɑ1>225°,即y1<y2時(shí),界址線的方向如表2統(tǒng)計(jì)的4種情況。
表2 ɑ1>225°時(shí)界址線方向
(setq ysc1 (reverse ysc1))
(setq xsc nil ysc nil)
(setq ii (- listlength 1))
(setq xsc (append xsc (list (nth ii xsc1))));反轉(zhuǎn)后最后一點(diǎn)即為反轉(zhuǎn)前第一點(diǎn),也就是西北角坐標(biāo).
(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 權(quán)屬界線賦值宗地屬性
經(jīng)過(guò)GIS軟件,利用屬性表關(guān)聯(lián)把調(diào)查數(shù)據(jù)掛接到界址線,把界址線導(dǎo)入到AutoCAD Map 2004中,通過(guò)讀取界址線的對(duì)象數(shù)據(jù),利用獲得的對(duì)象數(shù)據(jù)更新界址線基于南方CASS的宗地屬性,南方CASS的宗地屬性是以擴(kuò)展數(shù)據(jù)的形式存儲(chǔ)在文件中的[7]。程序的主要語(yǔ)句如下:
(setq xzqhdm (ade_odgetfield ent_h st_table "XZQHDM" 0));行政區(qū)劃代碼
(setq qlrsfz (ade_odgetfield ent_h st_table "QDDH" 0));權(quán)利人身份證
(setq tdzh (ade_odgetfield ent_h st_table "TFDH" 0));土地證號(hào)
…………
(setq dlbm (ade_odgetfield ent_h st_table "TDYT" 0));地類(lèi)編碼)
(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 "")) ));行政主管部門(mén)
(setq frdbxm (cons "FRDBXM" (list (cons 1000 frdb)) ));法人代表姓名
(setq frdbzms (cons "FRDBZMS" (list (cons 1000 qlrsfz)) ));法人代表證明書(shū)
(setq frdbdh (cons "FRDBDH" (list (cons 1000 ""))));法人代表代號(hào)
(setq dlrxm (cons "DLRXM" (list (cons 1000 ""))));代理人姓名
(setq dlrsfz (cons "DLRSFZ" (list (cons 1000 ""))));代理人身份證
(setq dlrdh (cons "DLRDH" (list (cons 1000 ""))));代理人代號(hào)
(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))));權(quán)屬來(lái)源證明
(setq pztdyt (cons "PZTDYT" (list (cons 1000 dcqk))));批準(zhǔn)土地用途,調(diào)查情況
(setq tdsyz (cons "TDSYZ" (list (cons 1000 qlrh))));土地使用者
(setq ybdjh (cons "YBDJH" (list (cons 1000 ybdjh))));預(yù)編地籍號(hào)
(setq tdzh (cons "TDZH" (list (cons 1000 tdzh))));土地證號(hào)
(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 ""))));單位性質(zhì)
(setq qsxz (cons "QSXZ" (list (cons 1000 qsxz))));權(quán)屬性質(zhì)
(setq syqlx (cons "SYQLX" (list (cons 1000 syqlx))));使用權(quán)類(lèi)型
(setq tddj (cons "TDDJ" (list (cons 1000 ""))));土地等級(jí)
(setq mph (cons "MPH" (list (cons 1000 mph))));門(mén)牌號(hào)
(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);更新界址線屬性
在番禺區(qū)鐘村街道城鎮(zhèn)地籍調(diào)查中,把通過(guò)拓?fù)錂z查的帶有調(diào)查屬性的宗地文件導(dǎo)入AutoCAD Map中,利用本程序生成宗地界線,能滿足地方國(guó)土對(duì)于宗地圖和地籍圖的出圖要求,且宗地屬性和入庫(kù)的shape file數(shù)據(jù)一致,不需人工干預(yù),能提高工作效率。結(jié)果如圖3所示,對(duì)話框?yàn)槟戏紺ASS的宗地屬性,右側(cè)列表為入庫(kù)的shape file數(shù)據(jù)。
圖3 應(yīng)用示例
[1] 劉明義,劉曉平,陳春華,等.CASS在城鎮(zhèn)地籍?dāng)?shù)據(jù)庫(kù)建設(shè)中的應(yīng)用[J].地理空間信息,2007,5(4):117-119
[2] 陳一舞,吳龍翔,謝剛生,等.南方CASS到MapGIS數(shù)據(jù)轉(zhuǎn)換的實(shí)現(xiàn)[J].測(cè)繪通報(bào),2010 (3):61-62
[3] TD/T 1001-2012.地籍調(diào)查規(guī)程[S].
[4] 吳千里,馬小龍.面向城市規(guī)劃信息化的GIS與CAD集成技術(shù)探討[J].測(cè)繪通報(bào),2010 (2):52-55
[5] 張鋒,陳愛(ài)萍.AutoCAD二次開(kāi)發(fā)環(huán)境的探討[J].機(jī)械設(shè)計(jì)與制造,2005(9):125-128
[6] 李長(zhǎng)勛.AutoCAD Visual LISP 程序開(kāi)發(fā)技術(shù)[M].北京:國(guó)防工業(yè)出版社,2005
[7] 韓江峰,鄧敏,徐楓,等.CAD宗地?cái)?shù)據(jù)向Geodatabase自動(dòng)轉(zhuǎn)換方法研究[J].測(cè)繪通報(bào),2009(9):58-61
P208
B
1672-4623(2014)03-0146-03
10.11709/j.issn.1672-4623.2014.03.049
龐林保,注冊(cè)測(cè)繪師,測(cè)繪工程師,主要從事地形測(cè)量、工程測(cè)量、大地測(cè)量、海洋測(cè)繪、地籍測(cè)量、航測(cè)遙感等工作。
2014-01-09。