張愛娟
(河南省地質(zhì)礦產(chǎn)勘查開發(fā)局測(cè)繪地理信息院,河南 鄭州 450006)
地理信息基礎(chǔ)數(shù)據(jù)采集中多段線重復(fù)點(diǎn)檢查方法及應(yīng)用
張愛娟
(河南省地質(zhì)礦產(chǎn)勘查開發(fā)局測(cè)繪地理信息院,河南 鄭州 450006)
摘要:在地理信息產(chǎn)業(yè)突飛猛進(jìn)發(fā)展的今天,對(duì)采集的基礎(chǔ)數(shù)據(jù)質(zhì)量要求越來(lái)越嚴(yán)格,為了保證數(shù)據(jù)質(zhì)量,結(jié)合地理信息工作實(shí)際和需求,開發(fā)研究圖形數(shù)據(jù)成果規(guī)范化檢查系統(tǒng)程序,在實(shí)際工作中得以應(yīng)用并取得了良好效果。
關(guān)鍵詞:測(cè)繪;重復(fù)點(diǎn)檢查;多段線;搜索半徑
doi:10.13442/j.gnss.1008-9268.2015.02.022
中圖分類號(hào):P 208
文獻(xiàn)標(biāo)志碼:: A
文章編號(hào):: 1008-9268(2015)02-0098-03
收稿日期:2015-02-11
作者簡(jiǎn)介
Abstract:In the rapid development of geographic information industry today, the quality of the underlying data collection requirements become more stringent, in order to ensure the quality of data, articles and geographic information needs of actual work, the results of research and development graphic data standardization inspection system program, to be in the actual work application and achieved good results.
0引言
隨著當(dāng)今測(cè)繪信息化工作的實(shí)施,地理信息數(shù)據(jù)獲取技術(shù)的不斷提高,地理信息系統(tǒng)應(yīng)用推廣條件更加成熟,尤其是大數(shù)據(jù)時(shí)代的到來(lái),加快了測(cè)繪時(shí)代的變革。
測(cè)繪已由傳統(tǒng)的手工、數(shù)字發(fā)展到當(dāng)前的信息時(shí)代,是多種技術(shù)的綜合效應(yīng)和高密度融合的結(jié)晶。測(cè)繪成果的表達(dá)形式也發(fā)生了根本性的變化。從傳統(tǒng)的手工描繪制圖變革到今天的微機(jī)自動(dòng)繪制,承載介質(zhì)亦從紙質(zhì)到如今的數(shù)字記錄格式,極大地促進(jìn)了信息化測(cè)繪工作的發(fā)展[1]。
盡管信息測(cè)繪以及地理信息應(yīng)用對(duì)現(xiàn)代測(cè)繪成果的表達(dá)在不斷地規(guī)范化、標(biāo)準(zhǔn)化,實(shí)際測(cè)繪工作中由于工作人員技術(shù)水平的差異性、使用軟件的處理編輯功能不夠完善,使得測(cè)繪工作的最終成果還存在很多不規(guī)范的地方,往往難以滿足后續(xù)標(biāo)準(zhǔn)化建庫(kù)的需要,給成果的下一步應(yīng)用帶來(lái)一定的困難。
圖形數(shù)據(jù)是測(cè)繪成果的主要表達(dá)形式,它主要由一系列的點(diǎn)、線、面等基本要素組成。而數(shù)據(jù)編輯過程中數(shù)據(jù)的多余重復(fù)點(diǎn)是編輯工作中經(jīng)常存在的問題。而這些問題單靠人工查找判斷,效率極低,且難以完全消除。為此,研究開發(fā)一個(gè)查找多余重復(fù)點(diǎn)的程序,實(shí)現(xiàn)自動(dòng)查找問題的技術(shù)方法,將會(huì)極大地提升實(shí)際工作效率。在大數(shù)據(jù)時(shí)代,更需要在測(cè)繪制圖工作中利用計(jì)算機(jī)技術(shù),開發(fā)智能檢查工具,以便保證測(cè)繪數(shù)據(jù)成果質(zhì)量。
1程序功能設(shè)計(jì)實(shí)現(xiàn)
Visual Lisp是一種微機(jī)編程語(yǔ)言,主要是基于Autodesk系統(tǒng)下開發(fā)設(shè)計(jì)的軟件開發(fā)工具。它直接包含在AutoCAD中,不需單獨(dú)安裝和配置,使用方便。Visual Lisp是在AutoLISP語(yǔ)言的基礎(chǔ)上發(fā)展而來(lái)的,不僅繼承了已有的優(yōu)勢(shì)特點(diǎn),而且增加了很多新的功能。它鑲嵌在AutoCAD系統(tǒng)程序中,與AutoCAD系統(tǒng)同時(shí)啟動(dòng)使用[2]。
Visual Lisp盡管集成于AutoCAD平臺(tái)內(nèi),它同樣可以單獨(dú)環(huán)境使用。所以一直以來(lái)受到很多編程愛好者的青睞,尤其在圖形處理工作中得以廣泛應(yīng)用。
現(xiàn)在進(jìn)行的信息化測(cè)繪工作,成果多是以AutoCAD為平臺(tái)的軟件上進(jìn)行編輯處理的。目前AutoCAD以操作簡(jiǎn)單,圖形編輯功能強(qiáng)大而被廣大測(cè)繪工作者使用。但是,在數(shù)據(jù)采集結(jié)束后,編輯時(shí)往往會(huì)出現(xiàn)數(shù)據(jù)冗余現(xiàn)象,比如重復(fù)點(diǎn)、重復(fù)實(shí)體等現(xiàn)象,這些數(shù)據(jù)的存在增加了數(shù)據(jù)量,還會(huì)對(duì)數(shù)據(jù)之間的屬性關(guān)系產(chǎn)生錯(cuò)誤,給后續(xù)分析應(yīng)用帶來(lái)很多麻煩。這些數(shù)據(jù)錯(cuò)誤無(wú)法靠人工消除,只能依靠查詢實(shí)體點(diǎn)逐一檢查,工作效率低下。為了提高工作效率減少數(shù)據(jù)冗余,結(jié)合工作實(shí)踐基于Visual Lisp語(yǔ)言開發(fā)了AutoCAD圖形數(shù)據(jù)多段線重復(fù)點(diǎn)檢查程序。
聯(lián)系人: 張愛娟 E-mail:624361734@qq.com
重復(fù)點(diǎn)按照常規(guī)的定義,就是在一條多段線上,其中有兩個(gè)或兩個(gè)以上連續(xù)點(diǎn)坐標(biāo)相同的點(diǎn)稱為重復(fù)點(diǎn)。在實(shí)際工作中,有時(shí)需要檢查兩個(gè)連續(xù)的點(diǎn),盡管坐標(biāo)不一樣,但是,因?yàn)檫@兩個(gè)點(diǎn)距離很近,小于實(shí)際所允許的距離,這樣的點(diǎn)認(rèn)為是不正常的,也稱為重復(fù)點(diǎn)。另外,有時(shí)一個(gè)封閉的圖形,正常情況需要首尾進(jìn)行閉合處理,但是,實(shí)際操作時(shí)沒有進(jìn)行閉合處理,而是采用首尾搭接方式,這種情況也是一種重復(fù)現(xiàn)象,在程序設(shè)計(jì)時(shí),充分考慮了這些現(xiàn)象,設(shè)計(jì)了檢查內(nèi)容控制變量,控制檢查內(nèi)容,全部檢查時(shí),是對(duì)所有的重復(fù)點(diǎn)、封閉圖形不閉合的圖形進(jìn)行檢查;封閉圖形不閉合的圖形檢查時(shí),只檢查封閉圖形的首尾搭接現(xiàn)象,封閉圖形不閉合以外的圖形檢查是檢查封閉圖形以外的圖形線條[3]。程序設(shè)計(jì)同時(shí)需要科學(xué)設(shè)置搜索半徑,不能過大也不能過小。
搜索半徑是指進(jìn)行檢查時(shí)兩個(gè)連續(xù)點(diǎn)之間距離值,小于這個(gè)距離時(shí)認(rèn)為也是重復(fù)點(diǎn),會(huì)進(jìn)行標(biāo)記,而大于這個(gè)距離時(shí),認(rèn)為是正常合理地兩個(gè)點(diǎn),不進(jìn)行檢查。標(biāo)記圓就是一個(gè)檢查標(biāo)記,為了很好的說明檢查出來(lái)的重復(fù)點(diǎn)的位置,方便后續(xù)修改處理,標(biāo)記圓的大小可以根據(jù)圖形內(nèi)容多少和比例尺大小進(jìn)行靈活設(shè)定,當(dāng)圖形內(nèi)容復(fù)雜,比例尺較小時(shí),可以適當(dāng)加大標(biāo)記圓半徑,便于查找。在檢查后程序會(huì)統(tǒng)計(jì)出檢查了多少目標(biāo),重復(fù)點(diǎn)有多少個(gè),并且會(huì)在圖形中新建一個(gè)“CKCFD”圖層,所有重復(fù)點(diǎn)的標(biāo)記圓都標(biāo)記在此圖層中,方便修改后統(tǒng)一刪除。
在程序中為了提高程序的運(yùn)行效率,節(jié)省檢查時(shí)間,經(jīng)過分析,根據(jù)程序設(shè)計(jì)的目的,只需要對(duì)多段線和二維多段線進(jìn)行重復(fù)點(diǎn)檢查,不需要對(duì)所有目標(biāo)都進(jìn)行檢查,這樣,可以利用ssget‘((0 . "*POLYLINE"))語(yǔ)句,直接把不需要檢查的目標(biāo)過濾掉,在選擇集中只保留多段線和二維多段線,從而提高程序運(yùn)行效率[2]。
在選擇所有需要檢查的目標(biāo)后,統(tǒng)計(jì)出目標(biāo)的總個(gè)數(shù)M,以便后續(xù)逐條進(jìn)行檢查時(shí)控制。當(dāng)選擇一個(gè)目標(biāo)線,并使用vlax-ename->vla-object命令獲取目標(biāo)線上的點(diǎn)坐標(biāo)列表,按照點(diǎn)坐標(biāo)列表的順序,逐點(diǎn)進(jìn)行檢查。在檢查時(shí),從第一點(diǎn)開始逐點(diǎn)進(jìn)行比對(duì),先檢查坐標(biāo)相同的點(diǎn),是重復(fù)點(diǎn)時(shí)這個(gè)點(diǎn)為圓心繪制標(biāo)記圓,然后再按照搜索半徑進(jìn)行兩點(diǎn)距離計(jì)算對(duì)比,小于這個(gè)距離時(shí),以前一個(gè)點(diǎn)的坐標(biāo)為圓心繪制標(biāo)記圓,以此類推檢查所有的選擇對(duì)象,直至檢查結(jié)束。在檢查時(shí),每檢查出來(lái)一個(gè)重復(fù)點(diǎn),都會(huì)在對(duì)話框上顯示重復(fù)點(diǎn)的個(gè)數(shù),還會(huì)顯示已經(jīng)檢查目標(biāo)的個(gè)數(shù),最后會(huì)顯示選擇的多少目標(biāo),統(tǒng)計(jì)檢查出來(lái)了多少重復(fù)點(diǎn),提供后續(xù)修改時(shí)做參考。以下是檢查程序樣本。
;|重復(fù)點(diǎn)檢查|;
(progn (repeat (/ len1 i0)
(setq j (+ 1 j))
(setq ck0 ck1)
(setq ck1 (vlax-safearray->list (vlax-variant-value (vla-get-coordinate obj j))))
(setq ck1 (list (car ck1) (cadr ck1)))
(if (equal ck0 ck1)
(progn (command "layer" "m" "CKCFD" "on" "CKCFD" "c" 1 "" "")
(command "circle" ck0 r)
(setq k (1+ k))
) ;_ 結(jié)束progn
) ;_ 結(jié)束if
) ;_ 結(jié)束repeat
) ;_ 結(jié)束progn
2在地理信息數(shù)據(jù)采集應(yīng)用
隨著城鎮(zhèn)地籍調(diào)查、農(nóng)村集體土地調(diào)查工作的開展,需要對(duì)界址線進(jìn)行檢查,要保證界址線上所有界址點(diǎn)的正確,不能出現(xiàn)無(wú)用多余的界址點(diǎn),同時(shí),界址點(diǎn)的設(shè)置也要合理。根據(jù)這些要求,使用本程序?qū)缰肪€進(jìn)行檢查。首先,可以解決多余重復(fù)界址點(diǎn)的問題,保證界址點(diǎn)成果表中不會(huì)出現(xiàn)相同坐標(biāo)的界址點(diǎn);其次,可以保證宗地圖顯示界址點(diǎn)個(gè)數(shù)和界址點(diǎn)成果表中界址點(diǎn)個(gè)數(shù)一致;再者,可以解決微距離界址點(diǎn)的問題,如在作圖時(shí),因?yàn)椴蹲經(jīng)]有到位等問題,產(chǎn)生兩個(gè)界址點(diǎn),點(diǎn)位距離很近只有幾厘米甚至更小,明顯是不合理的情況[4]。
另外,地理信息數(shù)據(jù)都是附帶信息的,方便后續(xù)數(shù)據(jù)庫(kù)建設(shè),尤其對(duì)圖形需要構(gòu)面時(shí),這樣圖形數(shù)據(jù)量大,對(duì)圖形拓?fù)湟髧?yán)格,如果圖形中存在重復(fù)點(diǎn),會(huì)出現(xiàn)拓?fù)溴e(cuò)誤,數(shù)據(jù)冗余會(huì)加大,因此,測(cè)繪地理信息圖形數(shù)據(jù)均需要進(jìn)行重復(fù)點(diǎn)檢查處理。
3結(jié)束語(yǔ)
Visual Lisp是一個(gè)AutoCAD系統(tǒng)下的編程語(yǔ)言,其強(qiáng)大功能是對(duì)AutoCAD系統(tǒng)的補(bǔ)充完善。結(jié)合AutoCAD應(yīng)用實(shí)踐,可以很方便開展生產(chǎn)小革新,使工作更加順利,效率更加快速。通過實(shí)踐應(yīng)用,所開發(fā)程序運(yùn)行后程序的所有功能都得以實(shí)現(xiàn),程序運(yùn)行穩(wěn)定可靠。所找到的重復(fù)點(diǎn)準(zhǔn)確無(wú)誤,沒有出現(xiàn)找錯(cuò)現(xiàn)象,極大的提高了工作效率,保證了成果的準(zhǔn)確可靠,避免了對(duì)后期工作的影響。但是需要提醒注意的是,在實(shí)際工作中需要科學(xué)設(shè)置搜索半徑,如果設(shè)置較大,則會(huì)搜索錯(cuò)誤,因此在設(shè)定搜索半徑時(shí),一定要根據(jù)實(shí)際情況而定,搜索距離盡量小,以避免出現(xiàn)錯(cuò)誤。
隨著信息化測(cè)繪的逐步深入,對(duì)圖形質(zhì)量和數(shù)據(jù)冗余的要求越來(lái)越高,大家會(huì)遇到很多類似的問題,在遇到問題時(shí),只要去細(xì)心研究,仔細(xì)分析,找到共同點(diǎn)和特點(diǎn),然后充分利用計(jì)算機(jī)技術(shù)進(jìn)行科學(xué)的程序編寫,不僅能提高勞動(dòng)效率,還會(huì)推動(dòng)信息化測(cè)繪的發(fā)展。
參考文獻(xiàn)
[1]王艷麗,丁文利,項(xiàng)鑫.在AutoCAD中懸掛點(diǎn)的檢查方法[J].中國(guó)煤炭地質(zhì),2010(B08):113-114.
[2]陳伯雄,馮偉著.Visual LISP 程序設(shè)計(jì):技巧與范例;[M].北京: 人民郵電出版社,2002.
[3]胡勝華,何宗宜,陶利佳,等.AutoCAD與GIS數(shù)據(jù)轉(zhuǎn)換的研究[J].測(cè)繪通報(bào),2007(12)44-47,55.
[4]袁進(jìn)軍,馮仲科,趙曉米,等.城鎮(zhèn)土地調(diào)查及宗地圖成圖方法研究[J]. 測(cè)繪與空間地理信息, 2010,33(1):8-12.
張愛娟(1968-),女,河南鄭州人,高級(jí)工程師,主要從事地理信息數(shù)據(jù)處理技術(shù)的研究工作。
Inspection Method and Its Application for Multi Segment Line Repeat
Point in Geography Information Data Acquisition
ZHANG Aijuan
(HenanBureauofGeologyandMineralMappingGeographicInformation
Institute,Zhengzhou450006,China)
Key words: Surveying and mapping; repeated point inspection; multi segment line;search radius