本書以“北京市地理信息公眾查詢系統(tǒng)”為例,按照軟件工程的思想與要求,介紹了如何運用VB,NET語言及地理信息系統(tǒng)二次開發(fā)組件MapObjects,進行地理信息系統(tǒng)(GIS)的二次開發(fā)。全書共分8章,首先概述了地理信息系統(tǒng)的軟件工程設計方法,從第2章開始,以Jfi匕京市地理信息公眾查詢系統(tǒng)”為例,詳細闡述了GIS系統(tǒng)的需求分析、總體設計、詳細設計、主界面實現(xiàn)與主要功能的編碼實現(xiàn)。本書適用于政府、企業(yè)相關部門的GIS研發(fā)人員,也適合作為高等院校地理學、地理信息系統(tǒng)、房地產、環(huán)境科學、資源與城鄉(xiāng)規(guī)劃管理、區(qū)域經濟學等專業(yè)學生的GIS實習教材和參考書,以及各種GIS培訓學員的教材用書。前言以計算機為核心的信息處理系統(tǒng)技術是二次世界大戰(zhàn)后科技革命的主要標志之一。在信息的諸多類型中,與空間相關的信息是十分重要的,人類賴以生存的地球是個三維空間,其中的萬物無不與空間位置相關,如何利用計算機處理空間相關信息是地理信息系統(tǒng)(GeographiclnformationSystem,GIS)產生和發(fā)展的原動力。GIS起源于2世紀6年代,它作為有關空間數據管理、空間信息分析及其傳播的計算機系統(tǒng),在其4多年的發(fā)展歷程中已經取得了很大成就,并廣泛地應用于土地利用、資源管理、環(huán)境監(jiān)測、交通運輸、城市規(guī)劃、經濟建設以及政府各職能部門。并且隨著計算機技術的不斷發(fā)展,計算速度越來越快,使得地理信息系統(tǒng)技術應用領域越來越廣泛。最近幾年來,地理信息系統(tǒng)無論是在理論上還是應用上都處在一個飛速發(fā)展的階段,并呈現(xiàn)出廣闊的應用前景?!皵底值厍颉备拍畹奶岢觯M一步推動了作為其技術支撐的GIS的發(fā)展。不管人們將21世紀稱為什么世紀,GIS的廣泛應用與普及必將是其一個重要的特征。今天,GIS已是一個全球擁有數十萬開發(fā)人員和數十億美元的產業(yè)。世界各國已設計出大量實用化的地理信息系統(tǒng),常用的GIS軟件已達4多種,比較著名的有美國環(huán)境系統(tǒng)研究所(ESRl)的ARC/INFO和ArcView,澳大利~GENASYS公司開發(fā)的GENAMAP,美國Clark大學GeorgePerkinsMarsh研究所的IDRiSI,中國地質大學開發(fā)的MapGIS,原武漢測繪科技大學開發(fā)的GeoStar,北京大學遙感與地理信息系統(tǒng)研究所開發(fā)的CityStar等等。另外,隨著Intemet/intranet的迅猛發(fā)展,萬維網地理信息系統(tǒng)(WebGIS)軟件也開始走向市場,國內的產品主要有成都華好網景科技有限公司的OKMap、武漢測繪科技大學開發(fā)的IntemetGeoStar(GeoSurD,國家遙感應用工程技術研究中心網絡與運行工程部開發(fā)的地網GeoBeans。雖然GIS軟件產品繁多,但是由于GIS軟件具有專業(yè)性強的特點,它們不可能解決所有的問題,因此,針對某些具體問題,還必須由用戶進行二次開發(fā)才能解決。正是出于這種需求,各大GIS廠商在推出基礎地理信息系統(tǒng)平臺的同時,一般都提供專門的語言與二次開發(fā)組件便于用戶進行二次,開發(fā),例如Maplnfo公司的MapBasic、MapX,ESRI公司的AVENUE、MapOhiects,以及RSI公司的IDL、IDLDrawWidget等。我國在這方面主要有北京超圖地理信息技術有限公司的SuperMap。雖然目前介紹這方面知識的書籍逐漸開始多起來,但都只是零散地介紹各種組件的功能,至今國內市場上還沒有介紹如何利用某一地理信息系統(tǒng)二次開發(fā)組件來實現(xiàn)一個功能相對齊全并且實用的系統(tǒng)。這正是本書編寫的目的。本書按照軟件工程技術的要求,以“北京市地理信息公眾查詢系統(tǒng)”為例,介紹了如何利用VB.NET語言以及地理信息系統(tǒng)二次開發(fā)組件Mapo均ects,進行地理信息系統(tǒng)的二次開發(fā),包括系統(tǒng)的需求分析、總體設計、詳細設計、主界面實現(xiàn)與主要功能的編碼實現(xiàn)等幾部分內容。第1章“地理信息系統(tǒng)軟件工程”講述了軟件工程技術在GIS系統(tǒng)開發(fā)中的幾個應用方面,包括需求分析、數據管理設計、用戶界面設計、設計模式在GIS軟件開發(fā)中的應用。在GIS開發(fā)過程中應用軟件工程技術,可以提高軟件開發(fā)效率和質量。第2章“需求分析”介紹了“北京市地理信息公眾查詢系統(tǒng)”的需求分析,包括需求概述、功能需求以及功能需求詳細描述。第3章“系統(tǒng)總體設計”介紹了系統(tǒng)平臺選擇、系統(tǒng)總體框架、系統(tǒng)數據組織及系統(tǒng)開發(fā)進度安排等。第4章“系統(tǒng)詳細設計”根據系統(tǒng)的總體設計結構分別從北京市地理信息公眾查詢系統(tǒng)的數據庫設計和一些相關類的設計兩方面來詳細闡述GIS系統(tǒng)的設計。第5章“系統(tǒng)主界面的實現(xiàn)”首先簡單介紹MapObjiects的功能、特點、結構及其數據源,然后介紹如何設計系統(tǒng)的主界面及主要實現(xiàn)代碼。第6章“選擇與查詢功能的實現(xiàn)”主要介紹如何通過查詢與數據集有關的表從數據中獲取信息,以及如何通過空間和邏輯的查詢方法從數據中獲取信息。第7章“系統(tǒng)其他輔助功能”介紹了系統(tǒng)中其他一些輔助功能的實現(xiàn),例如當鼠標移動到某地物上并稍做停留后,出現(xiàn)一個小標簽,顯示該地物的名稱,以及距離量算、面積量算的實現(xiàn),等等。為了讓讀者更加全面地掌握Mapobjects的開發(fā),第8章介紹了“北京市地理信息公眾查詢系統(tǒng)”開發(fā)過程中沒有涉及到的一些對象,包括投影對象、地址匹配對象、動態(tài)跟蹤層(TrackingLayer)對象與地理事件(GeoEvent)對象??坪>W站提供了本書涉及的所有源代碼,·以及實現(xiàn)書中內容所需的所有組件。讀者可以從www.khp.com.cn中下載這些資料。由于時間倉促,書中難免有一些錯誤、遺漏,懇請讀者諒解,并提出批評和指正。