靳娟麗,李乃良
(1.天水三和數(shù)碼測繪院,甘肅天水 741000; 2.蚌埠市勘測設計研究院,安徽蚌埠 233000)
在廣州SCS中,界址點、界址線的屬性都是以AutoCAD擴展屬性的方式存儲在界址點中,沒有界址線屬性的查看與編輯命令。這樣界址點的檢查包含兩部分,第一部分是空間位置檢查,即界址點必須位于與界址線相對應的拐點上;第二是界址點的屬性信息檢查,屬性信息包含兩部分,一部分是界址點屬性,如界址點名,點類型等,一部分是界址線屬性,如連接點名,界址線類型等。所以針對界址線的檢查與處理即是針對以上兩種空間位置和屬性信息檢查。
圖1 界址點屬性編輯對話框
在基于AutoCAD二次開發(fā)的廣州SCS地形地籍成圖軟件中,用封閉的重量多段線(Polyline)表示界址線,用多段線的頂點上繪制一個圓表示界址點,其屬性如圖1所示。圓心位置表示界址點的位置,圓心與多段線對應的定位置相同。因數(shù)據(jù)來源非常多,同時加上數(shù)據(jù)的不斷更新,經(jīng)常是調(diào)整了界址線的位置而界址點的位置沒有做同步調(diào)整,致使界址點不在對應的界址線頂點上。對于位置相差較大的情況很容易發(fā)現(xiàn)錯誤,手工調(diào)整即可。反而是位置相差極小的界址點人工不易發(fā)現(xiàn),在入庫后才被提示界址點位置錯誤。為在入庫前能夠發(fā)現(xiàn)并解決這一問題,需在廣州SCS中解決這一問題。因界址點位置與界址線對應頂點位置相差極小,人工查找,即使在放大倍率極大情況下也極難發(fā)現(xiàn),所以采用編程方式(采用c#2008與Auto-CAD 2008開發(fā),因程序過長,本處只介紹編程策略,不表示程序,以下同)進行查找并進行處理,其編程策略主要如下:檢索本街坊內(nèi)全部界址線,提取所有界址線的頂點,形成以界址線頂點構(gòu)成的界址點庫;檢索所有的界址點,逐個處理界址點,如果本界址點在界址點庫中有和距離小于允許值(考慮計算誤差允許值設定一般為0.000001即可)的界址點,則認為本界址點位于界址線頂點上,否則認為本界址點不在界址線頂點上。程序設計時一般采用自動處理,即如果界址點與界址點庫中最小距離的點其距離大于允許值而又小于允許自動調(diào)整最大值(自動調(diào)整總是在一定范圍內(nèi)進行),在北京地籍調(diào)查中,要求界址點間距大于 0.1 m,設定一個界址點距離最近的界址線頂點的距離小于0.05時方自動將界址點自動調(diào)整到最近的界址線拐點上,否則做一個標記,留待手工處理。如圖2為界址點位置自動檢查前情況,圖3為界址點位置檢查與處理后情況,可見界址點212不在界址線頂點上,但距離最近的界址點頂點距離小于允許自動調(diào)整最大值,檢查處理后的界址點212自動調(diào)整位置到界址線對應的頂點上,而界址點208盡管也不在界址線頂點上,但距離最近的界址點頂點距離大于允許自動調(diào)整最大值,界址點位置檢查與處理后,位置沒有調(diào)整,做一個標志,留待手工處理。
圖2 界址點位置檢查前
圖3 界址點位置檢查與處理后
理論上來說,一個界址線頂點上只應該有一個界址點,而基于AutoCAD二次開發(fā)的廣州SCS地形地籍成圖軟件中,使用閉合多段線表示界址線。當有相鄰的宗地時,界址線之間就會存在公共邊、公共頂點,在一個頂點處就會有多個界址點存在。在一個街坊內(nèi),界址點要統(tǒng)一編號,這就要求一個街坊內(nèi)界址點不能有重號。另外,在同一個界址線頂點處,可以有多個界址點,但界址點號必須相同,即同名界址點必須同位,同位界址點必須同名。因本次調(diào)查為變更調(diào)查,界址點號原已統(tǒng)編,本次只能對有變更的地方進行調(diào)整,界址點號也只能手工編號,所以會存在同名界址點號不同位情況和同位界址點號不同名情況。采用編程進行檢查,編程策略為,同點名不同位置界址點檢查策略為,定義結(jié)構(gòu)體數(shù)據(jù)類型,保存界址點名和界址點號,生成一個界址點的界址點名、界址點坐標庫,兩兩進行比較。如果兩個界址點名相同而界址點坐標不同說明界址點同名不同位,進行連線表示用于手工處理。對于同位不同名檢查策略則是兩兩比較界址點坐標。如果坐標相同而點名不同則為同位不同名界址點,用一標志標示進行手工處理。如圖4所示,對于同名不同位(圖面注記的界址點名和屬性中記錄的界址點名應該相同,但有時會存在不同情況,檢查時以屬性中記錄的界址點名為準,為保持圖面注記和屬性記錄的一致,可在需要時將圖面注記刪除,然后用屬性記錄中的屬性重新進行圖面注記即可。圖4中界址點227和界址點241顯示界址點同名,實為屬性記錄中界址點名相同)的界址點,用連線表示何點與何點同名不同位,并加文字說明。對同位不同名界址點,用一標志表示,并加注文字說明,便于手工處理時方便查找和修改。
圖4 同名、同位界址點的同位、同名檢查
在地籍圖中,要求每一個界址線的頂點上至少有一個界址點,本檢查的策略為將所有界址點生成界址點庫,然后逐個分析界址線頂點,只要該頂點在界址點庫中沒有與其距離小于設定值的界址點,即認為該頂點處無界址點,進行標示,留待手工處理。這一檢查只能檢查,不能自動處理,因為不能調(diào)整界址線的頂點到最近的界址點上,也不能將最近的界址點移動到界址線頂點上。圖5為界址線頂點上無界址點檢查結(jié)果。
圖5 界址線頂點上無界址點檢查
在廣州SCS地形地籍成圖軟件中,相鄰界址點號的賦值都是人工判斷進行的,這一過程極為緩慢,而且容易出錯。經(jīng)分析,這一過程可以自動進行,處理方法如下:逐點分析界址點,如果一個界址點其屬性記錄中沒有相鄰界址點號,則搜索經(jīng)過該界址點的界址線,產(chǎn)生該界址線的頂點庫和對應頂點的界址點號,檢索到和本界址點對應的頂點的上一頂點,獲取對應界址點號到本界址點的相鄰界址點號即可。
在廣州SCS地形地籍成圖軟件中,勘丈邊長的賦值是根據(jù)外業(yè)勘丈結(jié)果手工一個一個賦值的,在賦值的過程并沒有提醒理論值應該為多少,所以即使輸入錯誤也不能及時發(fā)現(xiàn),所以需對勘丈邊長進行檢查。檢查的策略為使用界址邊的理論邊長和勘丈邊長進行對比,界址邊的理論值可用本界址點的坐標和相鄰界址點的坐標計算獲得,如果大于限差,則予以標示進行提示。如圖6為界址點中勘丈邊長檢查結(jié)果,用標示進行標識,并用文字進行詳細說明便于查找和修改。
圖6 界址點中勘丈邊長檢查
本項目采用以上方式對北京市第二次土地調(diào)查中的界址點進行界址點的檢查和處理,大幅提高了地籍圖中關(guān)于界址點的數(shù)據(jù)質(zhì)量和處理速度,提高了數(shù)據(jù)提交后驗收的通過率。
[1][美]Bill Evjen,Rockford Lhotka等.Visual Basic 2005高級編程[M].北京:清華大學出版社,2006
[2][美]David F.Rogers.計算機圖形學的算法基礎[M].北京:機械工業(yè)出版社,2002
[3]曾洪飛,張帆,盧擇臨.AutoCAD VBA& VB.NET開發(fā)基礎教程與實例[M].北京:中國電力出版社,2008