程麗萍,左小清
(昆明市測繪研究院,云南昆明 650051)
地圖按圖幅分幅數字化、保存,這使本來連續的實體被分離到不同的存儲空間和存儲單元中去,這種地理空間的分離存儲導致了數據的物理縫隙,這也導致邏輯上本身連續的信息不能以邏輯連續的方式呈現,例如跨越多幅圖的一條河流,在圖幅內查詢河流屬性(例如長度)時只能獲取其在本圖幅內的相關信息而不是實體整體的信息。GIS用戶常常需求地理實體的連續完整信息,同時地圖接邊也是數據入庫和出圖前的重要環節,其方便性和智能性制約著數據入庫和發布的質量和效率。這就需要進行地圖接邊,使被圖幅割裂的地理實體在物理和邏輯上實現無縫連接。
國內外知名的GIS軟件廠商推出的GIS軟件大多數都帶有地圖接邊功能,如ArcGIS、MapGIS、AutoCAD Map 2000。它們對地圖接邊的解決方法不盡相同,但都實現了一定程度的自動化,提高了地圖接邊的效率和精度,改善了傳統由手工進行接邊的效率低下,精度難以保證的狀況。但這些軟件也都有各自的不足,如多數在整個接邊過程中只允許兩幅圖同時接邊,致使多幅圖接邊時操作煩瑣,效率較低;多個圖層接邊時還需要操作多次;面自動接邊功能薄弱等。因此,高效地、簡單化、自動化、智能化實現地圖接邊的需求仍然存在。
采用ESRI公司的Geodatabase數據模型,對數據庫中的矢量數據進行了如圖 1的組織。其中的圖幅索引層是由各個矢量圖幅的內圖廓面組成,包含有對應的圖幅號等屬性信息。

圖1 矢量數據的組織
先要對數據進行試驗以獲取合適的容限距圖幅間線接邊:
(1)根據地圖庫索引圖,獲得數據已經存在于數據庫中的圖幅號。
(2)對需要進行接邊的圖幅,只需選擇其圖幅號,可以多選。這種選擇接邊圖幅的方法,可以避免把圖幅數據加載入當前地圖界面,從而避免了大量數據加載時占用內存太多,影響系統顯示及操作速度。而接邊操作卻是直接對庫中數據進行,從而直接修改了原數據庫。
(3)對選中的多個要接邊圖幅號,取出一個,判斷其右圖幅和下圖幅是否也參與此次接邊,據此創建出公共接邊線。
(4)對公共接邊線以容限距創建緩沖,選出被該緩沖涉及的當前層所有要素作為參與接邊要素。
(5)在參與接邊要素范圍內,根據當前圖層的屬性約束字段,把屬性相同的要素歸為一類,由此參與接邊要素被分為若干類。
(6)對同類要素進行接邊:對其中端點間距離小于容限距的要素進行咬合合并(距離為 0時則直接合并)。有多個匹配要素的,只取一個。如此循環接完該類中所有要素。(需注意的是:由于原圖質量問題,使得未接邊前本應是端點對端點的要素,出現一要素端點對另一要素正數或倒數第二個結點的情況,在算法中也考慮了此類情況,使得接邊后要素是首尾相接,而避免了出現分叉情況。)
(7)同樣方法,循環接完所有類。當前層接邊結束。
(8)同樣方法,依次循環對其他待接邊層接邊。
(9)所有層接完后,同樣方法,開始下一幅圖,直到所有選中圖幅接邊完成。
圖幅間面接邊:算法基本同線接邊。不同處是同類要素之間只要最小距離小于容限距就可作為匹配要素,一個要素可以有多個匹配要素。找到的匹配要素只合并,不咬合。
由于VB的開發快速功能強大,采用VB 6.0為開發工具,綜合組件實現的相關理論,基于 AO組件集,結合SDE進行地圖自動接邊部件的開發。
線接邊程序流程如圖2所示,面接邊流程類似線接邊,不同處是對匹配的相鄰邊操作。

圖2 線接邊程序流程圖

圖3 組件界面
該組件經過客戶程序調用,只需操作一次,就可以自動對選中的多個圖幅,多個圖層根據距離和屬性約束條件進行接邊,大大減少了多余操作。組件調用后的使用界面如圖 3所示。
(1)AO組件集能很好地滿足GIS方面絕大部分的開發任務,而某些圖層數據屬較少見特殊情況,所以應用AO時有時會涉及目前版本中的某些漏洞(bug)而導致程序錯誤;另如SDE 9.0,當選擇集中要素個數超過SDE客戶端規定的缺省個數時,則任務在服務器端執行,多次時就會產生LOGFile錯誤。在代碼編寫中就需要考慮如何繞開這些漏洞而又較好地實施接邊算法。
(2)根據實際接邊圖幅數據質量狀況,確定多大的接邊容限距能較好地滿足地圖接邊要求。容限距過大,則會產生錯接。容限距過小,又會產生漏接。
(3)多個圖層接邊時,執行效率問題。當為完成某一具體功能而查找可用接口時,應盡可能從執行效率等角度考慮,選擇能更高效完成該部分代碼的接口。如同樣要刪除一個要素類中若干要素,若要素個數很多,則將其放入集合中刪除,可能比常規用的依次刪除效率高很多。
用其進行地圖自動接邊的實際效果如圖4所示。

圖4 邊界處線、面接邊前后對比
本文結合地圖接邊的相關理論,在充分吸取前人研究成果基礎上,研究了距離和屬性相結合的地圖多圖幅多圖層自動接邊方法,以實現圖幅接邊的簡單化、自動化和智能化。并基于AO組件集,采用COM技術編寫了該組件。試驗結果表明:
(1)該組件可以較好地提高地圖接邊的效率和精度,能基本滿足實際生產需求。
(2)基于AO和SDE進行GIS組件的開發是高效易行的。
[1] 程麗萍.云南省基礎地理信息平臺建設的部分關鍵理論與技術[D].昆明理工大學國土資源學院,2007
[2] 許耿.地圖學(修訂本).東北師范大學出版社[M],1998
[3] 毛曦,李均力.用COM組件技術實現數字地圖的自動接邊[J].計算機時報,2004(6):29~31
[4] 韓鵬,徐占華,褚海峰等.地理信息系統開發—ArcOb jects方法[M].武漢大學出版社,2005
[5] 潘愛民.COM原理與應用[M].清華大學出版社,1999
[6] 趙江洪.地理信息系統中多圖幅接邊的設計與實現[J].測繪科學,2004.2
[7] 鄧小軍,鄭小梅.基于AO的分幅等高線智能化接邊處理方法的研究[J].四川測繪,2004.6