程麗萍,左小清
(昆明市測繪研究院,云南昆明 650051)
地圖按圖幅分幅數(shù)字化、保存,這使本來連續(xù)的實體被分離到不同的存儲空間和存儲單元中去,這種地理空間的分離存儲導致了數(shù)據(jù)的物理縫隙,這也導致邏輯上本身連續(xù)的信息不能以邏輯連續(xù)的方式呈現(xiàn),例如跨越多幅圖的一條河流,在圖幅內(nèi)查詢河流屬性(例如長度)時只能獲取其在本圖幅內(nèi)的相關(guān)信息而不是實體整體的信息。GIS用戶常常需求地理實體的連續(xù)完整信息,同時地圖接邊也是數(shù)據(jù)入庫和出圖前的重要環(huán)節(jié),其方便性和智能性制約著數(shù)據(jù)入庫和發(fā)布的質(zhì)量和效率。這就需要進行地圖接邊,使被圖幅割裂的地理實體在物理和邏輯上實現(xiàn)無縫連接。
國內(nèi)外知名的GIS軟件廠商推出的GIS軟件大多數(shù)都帶有地圖接邊功能,如ArcGIS、MapGIS、AutoCAD Map 2000。它們對地圖接邊的解決方法不盡相同,但都實現(xiàn)了一定程度的自動化,提高了地圖接邊的效率和精度,改善了傳統(tǒng)由手工進行接邊的效率低下,精度難以保證的狀況。但這些軟件也都有各自的不足,如多數(shù)在整個接邊過程中只允許兩幅圖同時接邊,致使多幅圖接邊時操作煩瑣,效率較低;多個圖層接邊時還需要操作多次;面自動接邊功能薄弱等。因此,高效地、簡單化、自動化、智能化實現(xiàn)地圖接邊的需求仍然存在。
采用ESRI公司的Geodatabase數(shù)據(jù)模型,對數(shù)據(jù)庫中的矢量數(shù)據(jù)進行了如圖 1的組織。其中的圖幅索引層是由各個矢量圖幅的內(nèi)圖廓面組成,包含有對應的圖幅號等屬性信息。
圖1 矢量數(shù)據(jù)的組織
先要對數(shù)據(jù)進行試驗以獲取合適的容限距圖幅間線接邊:
(1)根據(jù)地圖庫索引圖,獲得數(shù)據(jù)已經(jīng)存在于數(shù)據(jù)庫中的圖幅號。
(2)對需要進行接邊的圖幅,只需選擇其圖幅號,可以多選。這種選擇接邊圖幅的方法,可以避免把圖幅數(shù)據(jù)加載入當前地圖界面,從而避免了大量數(shù)據(jù)加載時占用內(nèi)存太多,影響系統(tǒng)顯示及操作速度。而接邊操作卻是直接對庫中數(shù)據(jù)進行,從而直接修改了原數(shù)據(jù)庫。
(3)對選中的多個要接邊圖幅號,取出一個,判斷其右圖幅和下圖幅是否也參與此次接邊,據(jù)此創(chuàng)建出公共接邊線。
(4)對公共接邊線以容限距創(chuàng)建緩沖,選出被該緩沖涉及的當前層所有要素作為參與接邊要素。
(5)在參與接邊要素范圍內(nèi),根據(jù)當前圖層的屬性約束字段,把屬性相同的要素歸為一類,由此參與接邊要素被分為若干類。
(6)對同類要素進行接邊:對其中端點間距離小于容限距的要素進行咬合合并(距離為 0時則直接合并)。有多個匹配要素的,只取一個。如此循環(huán)接完該類中所有要素。(需注意的是:由于原圖質(zhì)量問題,使得未接邊前本應是端點對端點的要素,出現(xiàn)一要素端點對另一要素正數(shù)或倒數(shù)第二個結(jié)點的情況,在算法中也考慮了此類情況,使得接邊后要素是首尾相接,而避免了出現(xiàn)分叉情況。)
(7)同樣方法,循環(huán)接完所有類。當前層接邊結(jié)束。
(8)同樣方法,依次循環(huán)對其他待接邊層接邊。
(9)所有層接完后,同樣方法,開始下一幅圖,直到所有選中圖幅接邊完成。
圖幅間面接邊:算法基本同線接邊。不同處是同類要素之間只要最小距離小于容限距就可作為匹配要素,一個要素可以有多個匹配要素。找到的匹配要素只合并,不咬合。
由于VB的開發(fā)快速功能強大,采用VB 6.0為開發(fā)工具,綜合組件實現(xiàn)的相關(guān)理論,基于 AO組件集,結(jié)合SDE進行地圖自動接邊部件的開發(fā)。
線接邊程序流程如圖2所示,面接邊流程類似線接邊,不同處是對匹配的相鄰邊操作。
圖2 線接邊程序流程圖
圖3 組件界面
該組件經(jīng)過客戶程序調(diào)用,只需操作一次,就可以自動對選中的多個圖幅,多個圖層根據(jù)距離和屬性約束條件進行接邊,大大減少了多余操作。組件調(diào)用后的使用界面如圖 3所示。
(1)AO組件集能很好地滿足GIS方面絕大部分的開發(fā)任務,而某些圖層數(shù)據(jù)屬較少見特殊情況,所以應用AO時有時會涉及目前版本中的某些漏洞(bug)而導致程序錯誤;另如SDE 9.0,當選擇集中要素個數(shù)超過SDE客戶端規(guī)定的缺省個數(shù)時,則任務在服務器端執(zhí)行,多次時就會產(chǎn)生LOGFile錯誤。在代碼編寫中就需要考慮如何繞開這些漏洞而又較好地實施接邊算法。
(2)根據(jù)實際接邊圖幅數(shù)據(jù)質(zhì)量狀況,確定多大的接邊容限距能較好地滿足地圖接邊要求。容限距過大,則會產(chǎn)生錯接。容限距過小,又會產(chǎn)生漏接。
(3)多個圖層接邊時,執(zhí)行效率問題。當為完成某一具體功能而查找可用接口時,應盡可能從執(zhí)行效率等角度考慮,選擇能更高效完成該部分代碼的接口。如同樣要刪除一個要素類中若干要素,若要素個數(shù)很多,則將其放入集合中刪除,可能比常規(guī)用的依次刪除效率高很多。
用其進行地圖自動接邊的實際效果如圖4所示。
圖4 邊界處線、面接邊前后對比
本文結(jié)合地圖接邊的相關(guān)理論,在充分吸取前人研究成果基礎上,研究了距離和屬性相結(jié)合的地圖多圖幅多圖層自動接邊方法,以實現(xiàn)圖幅接邊的簡單化、自動化和智能化。并基于AO組件集,采用COM技術(shù)編寫了該組件。試驗結(jié)果表明:
(1)該組件可以較好地提高地圖接邊的效率和精度,能基本滿足實際生產(chǎn)需求。
(2)基于AO和SDE進行GIS組件的開發(fā)是高效易行的。
[1] 程麗萍.云南省基礎地理信息平臺建設的部分關(guān)鍵理論與技術(shù)[D].昆明理工大學國土資源學院,2007
[2] 許耿.地圖學(修訂本).東北師范大學出版社[M],1998
[3] 毛曦,李均力.用COM組件技術(shù)實現(xiàn)數(shù)字地圖的自動接邊[J].計算機時報,2004(6):29~31
[4] 韓鵬,徐占華,褚海峰等.地理信息系統(tǒng)開發(fā)—ArcOb jects方法[M].武漢大學出版社,2005
[5] 潘愛民.COM原理與應用[M].清華大學出版社,1999
[6] 趙江洪.地理信息系統(tǒng)中多圖幅接邊的設計與實現(xiàn)[J].測繪科學,2004.2
[7] 鄧小軍,鄭小梅.基于AO的分幅等高線智能化接邊處理方法的研究[J].四川測繪,2004.6