




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、*大學(xué)畢業(yè)設(shè)計論文(說明書)題目: 校園地理信息系統(tǒng)的設(shè)計與實現(xiàn)學(xué)生姓名: * * * 學(xué)生班級: 計算機科學(xué)與技術(shù) 指導(dǎo)教師: * * * 200*年*月校園地理信息系統(tǒng)的設(shè)計與實現(xiàn)摘 要與傳統(tǒng)的地圖相比較,地理信息系統(tǒng)有著不可比擬的優(yōu)勢,信息量大,切換方便,可擴(kuò)展性強。本文闡述了研究地理信息系統(tǒng)的背景、目的、方法,介紹了一個實用的、方便可靠的校園地理信息系統(tǒng)的設(shè)計、構(gòu)建和開發(fā)過程。開發(fā)過程中,使用了autocad和mapinfo處理地圖,采用ole的嵌入技術(shù)將mapinfo的數(shù)據(jù)與delphi連接起來,并且使用了mapbasic語言進(jìn)行對地圖的操作和控制。此系統(tǒng)在windows 98平臺上
2、測試通過。本文先簡要介紹了地理信息系統(tǒng)的概況,然后介紹了校園地理信息系統(tǒng)的組成及功能,詳細(xì)討論了在設(shè)計實現(xiàn)本系統(tǒng)中所遇到的問題及解決方法。關(guān)鍵詞:地理信息系統(tǒng)、mapinfo、delphidesign and implementation of geographic information system of campusabstractcompared with traditional map, geographic information system has many unique advantages,such as full of information, convenient sw
3、itching and good expansibility. the paper expatiated on the background, the purpose and the method of the research of geographic information system, and introduced the design, building and developing method of geographic information system of campus, which has characteristics of utility, convenience
4、 and reliableness.in the procedure of developing, autocad and mapinfo are used to handle maps, and ole embedding is used to linking mapinfo data and delphi, also, mapbasic language is used to operate and control maps. the system is running well on windows 98 platform.in this paper geographic informa
5、tion system in the general is reviewed briefly, the constitution and function of geographic information system of campus are introduced, the problem we met and the resolvent in the procedure of design and implementation of the system are discussed in detail.keywords:geographic information system,map
6、info,delphi致 謝畢業(yè)設(shè)計自今年2月份以來,歷時三個多月。在這三個多月的時間里,我的畢業(yè)設(shè)計得到了*老師的極大支持。在畢業(yè)設(shè)計過程中,*老師給了我很多意見和建議,并且給予了細(xì)心的指導(dǎo),在此我深表感謝,感謝*老師對我的無微不至的關(guān)心與指導(dǎo)。目 錄中文摘要1英文摘要1致謝2目錄3第一章 緒 論51.1 研究地理信息系統(tǒng)(gis)的背景51.2 研究地理信息系統(tǒng)(gis)的目的及其結(jié)構(gòu)51.3 研究地理信息系統(tǒng)(gis)的方法91.4 論文內(nèi)容概述9第二章 技術(shù)支持和開發(fā)工具102.1 mapinfo .102.2 delphi 5.0112.3 autocad r14.0112.4 ma
7、pbasic11第三章 校園地理信息系統(tǒng)的開發(fā)133.1 系統(tǒng)的目標(biāo)及功能133.1.1 系統(tǒng)的開發(fā)目標(biāo)133.1.2 系統(tǒng)的特點及功能概述133.2 可行性分析和需求分析133.2.1 系統(tǒng)的可行性分析133.2.2 系統(tǒng)的需求分析143.3 總體設(shè)計153.3.1 系統(tǒng)結(jié)構(gòu)設(shè)計153.3.2 模塊設(shè)計163.3.3 數(shù)據(jù)庫設(shè)計173.4 轉(zhuǎn)換與連接173.4.1 轉(zhuǎn)換地圖173.4.2 用mapinfo處理地圖203.4.3 mapinfo與delphi的無縫連接233.5 詳細(xì)設(shè)計273.5.1 界面設(shè)計273.5.2 浮動工具欄的設(shè)計實現(xiàn)303.5.3 地圖顯示323.5.4 tree
8、view與地圖信息的連接333.5.5 利用combobox實現(xiàn)分層圖的轉(zhuǎn)換343.5.6 自定義mapinfo快捷菜單373.5.7 開機畫面的制作36第四章 系統(tǒng)測試37第五章 結(jié)束語38參考文獻(xiàn)39第一章 緒 論1.1 研究地理信息系統(tǒng)(gis)的背景各行各業(yè)都搞過數(shù)據(jù)庫(信息管理系統(tǒng)),例如有人事、工資、技術(shù)資料管理之類的數(shù)據(jù)庫。說到底,這些數(shù)據(jù)庫是一種二維表。它們的行和列是按一定關(guān)系組織的,所以又叫關(guān)系數(shù)據(jù)庫。設(shè)想要建立一個校園的數(shù)據(jù)庫,其屬性字段可能包括建筑名稱、面積、所屬學(xué)院、建造年份等,當(dāng)然還有所處的位置。不管用經(jīng)緯度還是別的方式來敘述各建筑的位置,始終不如把它們表示在一幅圖上
9、那樣直觀和一目了然。能夠保存圖形信息的軟件不少,最具有代表性要算autocad。利用它可以把各個建筑的位置準(zhǔn)確的標(biāo)繪到圖上,甚至可以標(biāo)注上它們的名字。但要把面積、所屬學(xué)院之類的大量屬性資料都表示上去就困難了,更不用說進(jìn)行各種查詢和統(tǒng)計計算了。計算機技術(shù)發(fā)展到今天,出現(xiàn)了一種能把圖形管理系統(tǒng)和數(shù)據(jù)管理系統(tǒng)有機的結(jié)合起來的信息技術(shù),它不但克服了數(shù)據(jù)庫和圖形系統(tǒng)各自固有的局限性,而且使二者的優(yōu)勢強強聯(lián)合,優(yōu)勢更加突出,功能倍增。這就是地理信息系統(tǒng)(geographic information system,簡稱gis)。gis級管理對象的位置又管理對象的其他屬性,而且位置和其他屬性是自動關(guān)聯(lián)的。地理
10、信息系統(tǒng)是一種先進(jìn)的計算機軟件技術(shù)。它是對各種空間信息進(jìn)行收集、存儲、分析和可視化表達(dá)的信息處理與管理系統(tǒng)。gis提供給你的信息產(chǎn)品不僅僅是簡單的文字和數(shù)據(jù),而且還有一幅幅空間圖形或圖像。位置圖往往比文字更能說明空間問題,它給人以直觀完整而深刻的印象。gis表達(dá)問題準(zhǔn)確,這種系統(tǒng)特別適合管理各種與空間位置有關(guān)的事物。這類事物在我們的日常生活和工作中是大量的,專家估計,80%以上的信息具有空間屬性。因此,gis現(xiàn)已廣泛應(yīng)用于政府行政管理、軍事、國防,尤其廣泛應(yīng)用于專業(yè)技術(shù)性管理,如國土資源、礦產(chǎn)資源、交通運輸、防災(zāi)減災(zāi)、環(huán)境保護(hù)、水電建設(shè)、水土保持、森林防火、建設(shè)規(guī)劃、公安、消防、工程、郵電、海
11、洋、農(nóng)林和銀行等方面的技術(shù)性管理。凡是需要用到各種位置圖的地方都可以用gis。有了gis,便有了圖庫和數(shù)據(jù)庫,就可通過鼠標(biāo)來實現(xiàn)信息的快速查詢和分析處理。大到地球、國家、省市,小到村鎮(zhèn)、街道乃至地面上的一個點位,gis都能做到要圖有圖,要數(shù)據(jù)有數(shù)據(jù);圖文并聯(lián),天衣無縫。1.2 研究地理信息系統(tǒng)(gis)的目的及其結(jié)構(gòu)1gis能回答和解決以下五類問題: 位置,即在某個地方有什么。位置可以是地名、郵政編碼或地理坐標(biāo)等。 條件,即符合某些條件的實體在哪里。如:在某個地區(qū)尋找面積不小于1000平方米的不被植被覆蓋的,且地質(zhì)條件適合建大型建筑的區(qū)域。 趨勢,即在某個地方發(fā)生的某個事件及其隨時間的變化過程
12、。 模式,即在某個地方的空間實體的分布模式。模式分析揭示了地理實體之間的空間關(guān)系。 模擬,即某個地方如果具備某種條件會發(fā)生什么。通過基于模型的分析實現(xiàn)。2地理信息系統(tǒng)結(jié)構(gòu)地理信息系統(tǒng)依照其功能,其結(jié)構(gòu)可區(qū)分為:(1) 地理資料的數(shù)字化:地理資料的搜集是建立地理信息系統(tǒng)時,最為耗時費力的工作。資料的來源不外乎自行收集、向廠商購買,或是將資料格式進(jìn)行轉(zhuǎn)換。而接下來的工作便是將地圖、各種相關(guān)資料輸入gis的數(shù)據(jù)庫中,并加以整理。(2) 地理資料的管理:網(wǎng)絡(luò)與數(shù)據(jù)庫的結(jié)合,gis的范圍延伸到更深的領(lǐng)域。除了需要管理平面信息如地圖、圖層外,還需要管理與平面信息相關(guān)的立體信息。(3) 地理資料的分析與處理
13、:地理資料收集的目的,便是發(fā)揮決策支持的作用。對地理屬性數(shù)據(jù)進(jìn)行分析,并利用幾何運算、參數(shù)轉(zhuǎn)換多種方法對空間資料的分類、整理、處理等。(4) 地理資料的提取與顯示:將需要的地理信息以可視化的方式展現(xiàn)出來。例如一份地理資料的展現(xiàn),可以采用直方圖、餅形圖、折線圖、散布圖等較為直觀易懂的方式。在通過打印機或繪圖儀將圖表打印出來。1.3 研究地理信息系統(tǒng)(gis)的方法1國內(nèi)外常用的地理信息系統(tǒng)軟件 目前世界上常用的gis軟件已達(dá)400多種。它們大小不一,風(fēng)格各異。國外較常用的有arc/info,genamap,mge等;國內(nèi)較常用的有map/gis,geostar和citystar等。雖然gis起步
14、晚,但它發(fā)展快,目前已成功地應(yīng)用到許多領(lǐng)域。2地理信息系統(tǒng)在國內(nèi)外研究應(yīng)用盡管現(xiàn)存的地理信息系統(tǒng)軟件很多,但對于它的研究應(yīng)用,歸納概括起來有二種情況。一是利用gis系統(tǒng)來處理用戶的數(shù)據(jù);二是在gis的基礎(chǔ)上,利用它的開發(fā)函數(shù)庫二次開發(fā)出用戶的專用的地理信息系統(tǒng)軟件。目前已成功地應(yīng)用到了包括資源管理、自動制圖、設(shè)施管理、城市和區(qū)域的規(guī)劃、人口和商業(yè)管理、交通運輸、石油和天然氣、教育、軍事等九大類別的一百多個領(lǐng)域。在美國及發(fā)達(dá)國家,地理信息系統(tǒng)的應(yīng)用遍及環(huán)境保護(hù)、資源保護(hù)、災(zāi)害預(yù)測、投資評價、城市規(guī)劃建設(shè)、政府管理等眾多領(lǐng)域。近年來,隨我國經(jīng)濟(jì)建設(shè)的迅速發(fā)展,加速了地理信息系統(tǒng)應(yīng)用的進(jìn)程,在城市規(guī)
15、劃管理、交通運輸、測繪、環(huán)保、農(nóng)業(yè)、制圖等領(lǐng)域發(fā)揮了重要的作用,取得了良好的經(jīng)濟(jì)效益和社會效益。1.4 論文內(nèi)容概述以上已經(jīng)闡述了研究地理信息系統(tǒng)的背景、目的、方法,接下來的第二章將介紹開發(fā)本系統(tǒng)所用到的工具和技術(shù);第三章具體介紹了一個實用的、方便可靠的校園地理信息系統(tǒng)的設(shè)計、構(gòu)建和開發(fā)過程;第四章介紹了系統(tǒng)的測試情況及設(shè)計實現(xiàn)本系統(tǒng)中所遇到的問題及解決方法;第五章總結(jié)了畢業(yè)設(shè)計的總體情況以及系統(tǒng)的不足之處。第二章 本系統(tǒng)的技術(shù)支持和開發(fā)工具2.1 mapinfo.mapinfo是美國mapinfo公司的產(chǎn)品。該公司始終致力于為用戶提供先進(jìn)的數(shù)據(jù)可視化、信息地圖化技術(shù),并將這些技術(shù)與主流業(yè)務(wù)系
16、統(tǒng)集成,提供完整的解決方案。mapinfo吸取了傳統(tǒng)gis系統(tǒng)的精華,并借助于計算機技術(shù)的發(fā)展,及時的將gis的概念從中大型計算機的專用工作站引入到普通pc上,開創(chuàng)了一種嶄新的地理信息系統(tǒng)模式,即桌面地圖信息系統(tǒng)。mapinfo的出現(xiàn),吸引了越來越多的用戶。該產(chǎn)品自九十年代初進(jìn)入中國后,在各行各業(yè)得到了普遍的關(guān)注。在統(tǒng)計、信息中心、測繪、郵電、水利、環(huán)保、油田、林業(yè)、軍事、工商等部門得到了廣泛的應(yīng)用。mapinfo的主要特點:(1) mapinfo=mapping +information。(2) 提供數(shù)據(jù)、思維可視化的決策支持方式。(3) 支持client/server體系結(jié)構(gòu)及無縫圖層。(
17、4) 直接讀/寫odbc數(shù)據(jù)庫。(5) 輕松建立數(shù)據(jù)與地圖的關(guān)聯(lián)。(6) 提供mapbasic二次開發(fā)工具方便定制用戶界面,增添新功能。(7) 功能完備的sql查詢功能,支持地理表達(dá)式。(8) 以地理方式實現(xiàn)oracle、sybase、informix等多種數(shù)據(jù)庫數(shù)據(jù)的空間存儲與訪問。(9) 具有ole嵌入功能,能將圖層拖放進(jìn)其他應(yīng)用程序。(10) 可在windows95、windowsnt及os/2、windows3.x 16位仿真模式下運行。mapinfo professional是第一個能夠在windows95上運行的真32位工業(yè)標(biāo)準(zhǔn)桌面地圖信息系統(tǒng),實現(xiàn)client/server計算環(huán)
18、境下與遠(yuǎn)程數(shù)據(jù)庫的智能化共享與連接,開辟了桌面地圖 信息系統(tǒng)21世紀(jì)新紀(jì)元。使用mapinfo professional可以對數(shù)據(jù)進(jìn)行更高級和更詳盡的分析,從而從地域的觀點對你的商務(wù)做進(jìn)一步的了解,和可以預(yù)見到你定制的計劃的效果,通過圖層清晰的顯示出發(fā)展趨勢,幫助你制訂行之有效的市場決策。mapinfo新增特點:mapinfo professional5.0在精確地圖化和地理分析方面新增了去多功能,包括:(1) 支持internet。(2) 圖表和圖像。(3) 分層。(4) 3d視圖。(5) 專題地圖化和樣板。(6) 生成專題圖。(7) 支持柵格圖像。(8) 給地圖目標(biāo)附加數(shù)據(jù)。(9) 關(guān)聯(lián)的
19、視圖。(10) 建立和存儲sql查詢。(11) 在目標(biāo)周圍建立緩沖區(qū)。(12) 地理查詢。(13) seagate crystal報表。(14) 內(nèi)置的沖突協(xié)調(diào)管理。(15) 服務(wù)方面儲藏和數(shù)據(jù)管理。2.2 delphi 5.0delphi號稱“第四代編程語言”,而delphi5.0是基于32位的windows98/nt環(huán)境顯得優(yōu)秀軟件開發(fā)系統(tǒng),它兼有visual c+的強大功能和visual basic的易用性。delphi5.0的特點:delphi5.0采用面向?qū)ο蟮某绦蛟O(shè)置、組件化的編程方式、快速pascal編譯器、ole自動化、activex編程、數(shù)據(jù)庫及internet/intran
20、et編程支持,從而使得delphi5.0開發(fā)功能更加強大,同時更加易于學(xué)習(xí)和使用。1) 是一個可視化的rad(rapid application development,快速應(yīng)用程序開發(fā))工具,具有高效易用、最優(yōu)化的源代碼編譯器、可視化的快速應(yīng)用程序開發(fā)環(huán)境和可擴(kuò)展的數(shù)據(jù)庫技術(shù),適合各種類型的可視化程序開發(fā)。2) 具有比delphi4.0更強大的網(wǎng)絡(luò)功能。3) 使用的程序語言是object pascal,它是一種面向?qū)ο蟮慕Y(jié)構(gòu)化程序設(shè)計語言,增強了異常狀況的處理能力以及類的封裝能力,具有自動的異常狀況處理能力。4) 具有完整的基于組件設(shè)計和可視化的開發(fā)環(huán)境,程序設(shè)計人員可以很快設(shè)計出自己滿意的
21、界面,并同時系統(tǒng)會自動產(chǎn)生程序原型。5) 開發(fā)出來的應(yīng)用程序與windows95、windows98或windows nt的操作環(huán)境無關(guān),可以直接在windows下運行。6) 有強大的數(shù)據(jù)庫支持能力,程序設(shè)計人員只通過bde(borland database engineer,borland數(shù)據(jù)庫引擎)工具而不需與數(shù)據(jù)庫文件直接打交道,就可以操作和處理各個數(shù)據(jù)庫文件。7) 它是唯一支持oracle 8的rad工具。8) 用delphi開發(fā)的應(yīng)用程序可以調(diào)用c+的dll和vbx,同樣,用c+開發(fā)的應(yīng)用程序也可調(diào)用delphi所產(chǎn)生的dll。2.3 autocad r14.0autocad是美國a
22、utodesk公司推出的通用計算機輔助繪圖和設(shè)計軟件包,具有易于掌握、使用方便、體系結(jié)構(gòu)開放等特點。它在諸多方面相對與以往的繪圖軟件有了重大的改進(jìn),主要有:系統(tǒng)的運行速度,文件的共享,圖層和線性的管理,精確繪圖方面,繪圖布局方面等。軟件本身更易于學(xué)習(xí)和使用,也易于維護(hù),并且還可以按照工作的需要進(jìn)行改造。在本系統(tǒng)的設(shè)計實現(xiàn)過程中,autocad主要用來轉(zhuǎn)換地圖。2.4 mapbasicmapbasic是理想的在mapbasic平臺上開發(fā)用戶定制的應(yīng)用程序的編程語言。通過使用mapbasic進(jìn)行二次開發(fā),能夠擴(kuò)展mapinfo功能,實現(xiàn)程序的自動重復(fù)操作并使mapinfo與其它應(yīng)用軟件集成。map
23、basic功能強大,用戶僅用幾行代碼即可在應(yīng)用軟件中實現(xiàn)圖層疊加,并具備其他地理功能。mapbasic程序易于與用諸如visual basic、c+、power builder和delphi等語言編寫的應(yīng)用軟件集成。mapbasic已經(jīng)被世界上數(shù)百個第三方廠商認(rèn)可。mapbasic的軟件集成環(huán)境主要包括文本編輯器(editor)、程序編譯器(compiler)、程序鏈接器(linker)和聯(lián)機幫助(help)4個部分。文本編輯器用于程序的編輯與修改;程序編譯器用于源程序編譯,以生成可執(zhí)行程序;程序鏈接器用于將若干獨立的模塊鏈接成一個應(yīng)用程序;聯(lián)機幫助則為程序員在線提供mapbasic的每條語句
24、或函數(shù)的詳細(xì)說明資料。作為一種功能強大、易于使用的結(jié)構(gòu)化程序設(shè)計語言,mapbasic與傳統(tǒng)的gis相比,良好的軟件集成環(huán)境、面向?qū)ο蠛褪录幚硎降木幊趟枷?,都是mapbasic的顯著特征。下面是mapbasic的主要特點:1) 一種類basic語言,幫助建立用戶界面。由于桌面地圖信息系統(tǒng)應(yīng)用軟件在各種機構(gòu)和領(lǐng)域內(nèi)的應(yīng)用愈加廣泛,顧客對開發(fā)應(yīng)用軟件的需要日益增大。用戶可以利用mapbasic開發(fā)適合自己需要的應(yīng)用軟件包。2) mapinfo集成。支持oleautomation和dde技術(shù)使之易于與其他應(yīng)用軟件相連接。當(dāng)與其他的商業(yè)工具集成時,桌面地圖信息系統(tǒng)能夠發(fā)揮最大的作用。mapbasic
25、支持odbc數(shù)據(jù)庫連接標(biāo)準(zhǔn)、oleautomation以及dde通信技術(shù)以易于與其他應(yīng)用軟件互通。例如,運用intergratemapping技術(shù),在visualbasic等開發(fā)工具中集成進(jìn)一個地圖窗口。3) 擴(kuò)展mapinfo功能。mapbasic是一種多平臺的、過程化的、事件驅(qū)動的、兼容性強的mapinfo應(yīng)用程序開發(fā)工具,其語言結(jié)構(gòu)允許您定制附加功能。它具有功能很強的內(nèi)含地理特征的語句和函數(shù)。全ansisql語言設(shè)置由一個內(nèi)含的子集可以使用戶能夠運用工業(yè)標(biāo)準(zhǔn)的命令來處理數(shù)據(jù)。4) 易于掌握。建立在basic基礎(chǔ)上的mapbasic具有與basic同樣的函數(shù)和語句。mapinfo prof
26、essional有一個特殊的窗口,當(dāng)使用mapinfo菜單時可以看見相應(yīng)的mapbasic命令,并且可試驗自己的命令。通過此方法可以學(xué)習(xí)mapbasic命令并且把它們剪貼到你的應(yīng)用軟件中。5) 包含嵌入的sql語句以具有更強大的數(shù)據(jù)查詢功能。6) 地理操作和功能幫相互能擴(kuò)展應(yīng)用軟件的功能。已有上千種使用mapbasic開發(fā)出的、能夠解決商務(wù)問題的應(yīng)用軟件。mapbasic是一種更能強大、結(jié)構(gòu)與basic語言相似的語言。無論是熟練的還是剛?cè)腴T的程序員,都能使用該語言根據(jù)用戶的需求開發(fā)出功能更加強大的桌面地圖信息系統(tǒng)應(yīng)用軟件包。無論是希望分銷,還是為了您自己使用而設(shè)計應(yīng)用軟件,mapbasic都是
27、一個不可缺少的工具。mapbasic是一種可編譯語言。用戶所編輯出的程序可在mapinfoprofessional或mapinforuntime上運行。開發(fā)環(huán)境給用戶提供一個可用于編寫程序的文本編輯器。當(dāng)然,也可以使用原有的文本編輯器。mapbasic具有編輯和連接模塊的功能,可以將程序分模塊編制,以減輕工作量。第三章 校園地理信息系統(tǒng)的開發(fā)3.1 系統(tǒng)的目標(biāo)及功能特點3.1.1 系統(tǒng)的開發(fā)目標(biāo)本課題名為校園地理信息系統(tǒng)。本系統(tǒng)以*大學(xué)為模型,旨在建立一個本學(xué)校的導(dǎo)航系統(tǒng),可以根據(jù)不同人的要求,足不出戶,就可以瀏覽校園,得到各種信息。3.1.2 系統(tǒng)的特點及功能概述地理信息系統(tǒng)的特點是它能把各
28、種信息向地理位置和有關(guān)的視圖結(jié)合起來,并把地理學(xué)、幾何學(xué)、計算機科學(xué)及各種應(yīng)用對象、cad技術(shù)、遙感、gps技術(shù)、 internet、多媒體技術(shù)及虛擬現(xiàn)實技術(shù)等融為一體,利用計算機圖形與數(shù)據(jù)庫技術(shù)來采集、存儲、編輯、顯示、轉(zhuǎn)換、分析和輸出地理圖形及其屬性數(shù)據(jù)。這樣,可根據(jù)用戶需要將這些信息圖文并茂地輸送給用戶,便于分析及決策使用。以我校為模型的校園地理信息系統(tǒng)能夠?qū)崿F(xiàn)地理信息系統(tǒng)的基本功能。用戶可按“教學(xué)與科研”、“生活與后勤”、“校辦工廠”、“網(wǎng)絡(luò)與電纜”這幾類察看分層圖,并且得到相應(yīng)的信息,實現(xiàn)地圖的放大、縮小、漫游、信息標(biāo)注等功能,并能得到系統(tǒng)幫助。3.2 可行性分析和需求分析3.2.1
29、系統(tǒng)的可行性分析本系統(tǒng)要求以delphi制作界面,而將地圖信息存放在mapinfo生成的表中。可以利用mapbasic外的其他語言對mapinfo進(jìn)行編程。將mapinfo地圖窗口集成在用其他語言(如delphi)編程的應(yīng)用程序中的開發(fā)方式,叫做集成地圖開發(fā)。1 集成地圖概述如果用戶掌握了一門編程語言,如delphi或visual basic,將會發(fā)現(xiàn),用集成地圖進(jìn)行開發(fā),是一種將mapinfo窗體和非mapbasic應(yīng)用程序結(jié)合起來的最方便的方法。用戶可以控制集成地圖程序的外觀,用戶看到的是一個真實的mapinfo地圖窗口,而不是簡單的位圖、圖元文件或其他簡單的圖像。而且在這個地圖窗口中,可
30、以允許用戶與地圖之間進(jìn)行交互。例如,在一個mapinfo地圖窗口中,用戶可以使用程序所提供的放大縮小工具來放大或縮小地圖。一個集成地圖窗口與在mapinfo內(nèi)的地圖窗口沒有什么本質(zhì)的不同。集成地圖應(yīng)用程序可以由許多語言編寫。通常用的編程語言有:c+、visual basic、delphi和power builder等。在所編制的程序中,可以使用一個語句使mapinfo在后臺啟動。例如,當(dāng)使用delphi來編程時,可以通過調(diào)用createoleobject()函數(shù)來啟動mapinfo。當(dāng)調(diào)用該函數(shù)后,mapinfo遍成功的在后臺啟動,而不會在前臺顯示其啟動畫面。在程序中可以通過構(gòu)造一些表示map
31、basic語句的字符串,利用ole或dde的方式將這些字符傳給mapinfo,從而可以操縱mapinfo。mapinfo會像處理mapbasic語句一樣處理這些命令字符串。如果只用mapbasic編程,希望打開地圖窗口時,那只需采用mapbasic的map()語句即可。但是,在集成地圖應(yīng)用程序中,必須給出附加的語句,如set next document parent,使地圖窗口首先成為當(dāng)前應(yīng)用程序的子窗口。一般,在創(chuàng)建集成地圖應(yīng)用程序時,并不需要創(chuàng)建一個通過編譯了的可執(zhí)行mapbasic應(yīng)用程序(mbx)。用戶只需要寫出mapbasic代碼即可,因為這些代碼將作為集成地圖編程代碼的一部分一起進(jìn)
32、行編譯的。2 編程環(huán)境系統(tǒng)要求:1) 需要microsoft windows系統(tǒng)??梢栽?6位(如windows 3.1)或32位windows(windows 95或windows 98)系統(tǒng)環(huán)境下進(jìn)行。2) 集成地圖環(huán)境。需要mapinfo 4.0或更高版本,可以在profession或runtime環(huán)境中編程。計算機硬件上,必須有足夠的內(nèi)存,可以同時運行客戶程序和mapinfo。3) 客戶程序(例如delphi程序)必須可以作為ole自動控制器或作為dde客戶。一般傾向于采用ole而不用dde,因為掐著要比后者迅速和可靠,并且ole自動控制器一般提供比dde更詳細(xì)的錯誤信息報告。mapi
33、nfo可以利用ole屬性來報告run-time錯誤代碼,而dde則不能做到這一點。4) 客戶程序必須能創(chuàng)建一個用戶界面,如窗口、表格或者控制器等,作為地圖放置的容器,并且客戶程序必須能決定用戶界面各元素的windows hwnd值。例如,在delphi中,在窗體中加入一個panel控件。當(dāng)發(fā)出一條給mapinfo的指令,要求在該panel中創(chuàng)建一幅地圖,首先就必須指定panel控件的hwnd。a) 需要注意以下幾點:5) 要進(jìn)行集成地圖程序的開發(fā),必須采用mapbasic以外的編程語言來進(jìn)行。通常我們稱這樣的程序為客戶程序??梢圆捎矛F(xiàn)在通用的各類編程語言軟件來編制程序,如c/c+、visual
34、 basic、power builder或者delphi。6) 集成地圖程序開發(fā)采用的是ole自動控制,而不是ole嵌套。當(dāng)將一個mapinfo地圖窗口放置于所編制的應(yīng)用程序中時,你并沒有對它進(jìn)行嵌套,而是將通過傳送一系列命令字符串將其作為該應(yīng)用窗口的子窗口。7) 集成地圖環(huán)境并不包括vbx和ocx控件。除了示例程序外,mapinfo公司并沒有提供任何庫和源代碼。mapinfo雖然包括一些動態(tài)鏈接庫文件dlls,但用戶不能直接調(diào)用這些dlls,這些dlls只能應(yīng)用在mapinfo內(nèi)部。 3.2.2系統(tǒng)的需求分析目前,我們熟悉一個地方的地形情況通常是借助于一張地圖,通常的地圖包含的信息十分的有限
35、,而且具體到某一個建筑物,你不能了解到它的進(jìn)一步的詳細(xì)的情況。因此,地理信息系統(tǒng)就有應(yīng)運而生了。具體到本系統(tǒng),作為用戶瀏覽校園時,只拿著學(xué)校的地圖是能夠游遍全校,但是各建筑內(nèi)部的情況就必須實地考察才能了解,既費時又費力。有了我們的校園地理信息系統(tǒng),用戶可以根據(jù)自己的需要分類察看學(xué)校地圖,迅速找到所關(guān)心的地點,并且可以看到它的詳細(xì)的信息。因此,本系統(tǒng)在設(shè)計時,需考慮:1 同用戶的需求以及學(xué)校建筑的實際功能用途來進(jìn)行分類,以便于用戶的快速查找所需地點。2 實現(xiàn)地圖的放大、縮小、漫游等基本功能。3 要實現(xiàn)信息標(biāo)注功能,以便于用戶察看其他次要建筑的信息。4 對于校園的主要建筑要有詳細(xì)的信息可供察看,必
36、要的時候可以配上照片,實現(xiàn)地圖與信息的連結(jié)。5 要實現(xiàn)系統(tǒng)幫助,詳細(xì)介紹本系統(tǒng)的使用方法。6 在同一類中要實現(xiàn)分層圖的直接轉(zhuǎn)換。3.3 總體設(shè)計3.3.1 系統(tǒng)結(jié)構(gòu)設(shè)計本系統(tǒng)主要由6個form組成(如圖1),功能如下:form1:系統(tǒng)主要的操作界面;form2:各學(xué)院介紹界面;form3:學(xué)??傮w介紹界面;form4:系統(tǒng)開機畫面;form5:文化一條街圖片介紹;form6:系統(tǒng)幫助界面。 form2form5form1form3form4form6 splash畫面定時結(jié)束進(jìn)入form3點擊“浙江工業(yè)大學(xué)”進(jìn)入form1 打開地圖點擊treeview上的項目打開“生活與后勤”中的“其他生活設(shè)
37、施分布圖”的treeview中的“文化一條街”點擊工具欄上的“幫助” 圖1:系統(tǒng)結(jié)構(gòu)圖3.3.2 模塊設(shè)計學(xué)校是一個特殊的實體,我們以用戶的角度來考察,要將各個建筑分類。進(jìn)入一個學(xué)校,我們希望了解的有學(xué)校的行政辦公的場所,包括學(xué)校的行政辦公場所,如校長辦公室、教務(wù)處、校黨委辦公室、財務(wù)處等,以及各個學(xué)院的辦公場所,如信息學(xué)院在主樓八樓,經(jīng)貿(mào)學(xué)院在c區(qū)三樓等,因此我們建立一張行政辦公分布圖;關(guān)心學(xué)校教學(xué)設(shè)施的用戶可以在教室分布圖上找到學(xué)校教室分布情況,在運動設(shè)施分布圖上可以了解到學(xué)校所有的運動設(shè)施的分布情況。另外,我們?nèi)缫乙粋€同學(xué),我們?nèi)缰浪诘膶W(xué)院,根據(jù)這個就可以知道他所在的寢室樓,因此
38、,一張學(xué)生寢室樓分布圖也是必不可少的;來到學(xué)校,食堂分布圖將引導(dǎo)用戶就餐;一張其他生活設(shè)施分布圖將是剛剛?cè)雽W(xué)的新同學(xué)一個良好的向?qū)В憧梢暂p松的找到學(xué)校的浴室、開水房、銀行、超市、收發(fā)室、書店、小賣部、文印室、校醫(yī)院、招待所等與大家的生活息息相關(guān)的生活設(shè)施;分布于學(xué)校周圍的是教師宿舍。學(xué)校的校辦工廠我們也分為一類,與之有業(yè)務(wù)聯(lián)系的用戶就可以很快找到廠房位置。學(xué)校的電纜線和網(wǎng)絡(luò)線也是很重要的,我們也分別制作了地圖供參考。根據(jù)以上的描述,我們將整個學(xué)校的地圖分為如圖2的分類分層圖: 浙江工業(yè)大學(xué)行政辦公分布圖教學(xué)與科研運動設(shè)施分布圖學(xué)生寢室分布圖食堂分布圖教室分布圖校辦工廠生活與后勤教室宿舍分布圖
39、其他生活設(shè)施分布圖校辦工廠網(wǎng)絡(luò)線分布圖網(wǎng)絡(luò)與電纜電纜線分布圖圖2: 系統(tǒng)分類分層圖按照此分類分層圖,打開從autocad導(dǎo)入的分層圖,我們將以“地形.tab”為基礎(chǔ),將地圖轉(zhuǎn)化為分類圖。3.3.3 數(shù)據(jù)庫設(shè)計mapinfo的空間數(shù)據(jù)結(jié)構(gòu)如圖3 所示10。綜合地圖 空間實體 對應(yīng)的空間數(shù)據(jù)表圖層1圖層2 對應(yīng)的空間數(shù)據(jù)表 圖3:mapinfo的空間數(shù)據(jù)結(jié)構(gòu)從橫向分析,mapinfo采取的空間數(shù)據(jù)結(jié)構(gòu)是基于空間實體和空間索引相結(jié)合的一種結(jié)構(gòu)。空間實體是地理圖形的抽象模型,主要包括點、線、面三種類型。任何點、線、面實體都可以用直角坐標(biāo)點x,y來表示。點可以表示成一組坐標(biāo)(x1,y1;x2,y2xn,
40、yn)。空間索引時查詢空間實體的一種機制,通過空間索引,就能夠以盡量快的速度查詢到給定坐標(biāo)范圍內(nèi)的空間實體及其所對應(yīng)的數(shù)據(jù)。從縱向分析,mapinfo的空間數(shù)據(jù)結(jié)構(gòu)是一種分層存放的結(jié)構(gòu)。用戶可以通過圖形分層技術(shù),根據(jù)自己的需求戶一定的標(biāo)準(zhǔn)對各種空間實體進(jìn)行分層組合,即將一張地圖分成不同圖層。3.4 轉(zhuǎn)換與連接3.4.1轉(zhuǎn)換地圖autocad在本次設(shè)計中主要用于處理地圖,我們得到的是使用autocad制作的浙江工業(yè)大學(xué)控制網(wǎng)及圖幅分幅圖,如圖4: 圖4:原始圖在圖上可見線條縱橫交錯,不易分辨,該圖分為0、dl、t100、t900、地形、電纜、電信、舊上水、舊下水、上水、下水、圖框、網(wǎng)絡(luò)、污水等若
41、干個layer,我們的任務(wù)就是將繪制在autocad中的地圖導(dǎo)入mapinfo。用戶可使用export命令將autocad圖形對象轉(zhuǎn)化為其他文件格式加以保存,以便其他應(yīng)用程序調(diào)用,此命令共有如下兩種執(zhí)行方法:1在命令行中輸入export并按回車鍵。2選擇file菜單的export選擇項。在執(zhí)行export命令時,將彈出export data對話窗口,如圖5:圖5:export data對話框用戶可在export data對話窗口中輸入文件名和文件類型,autocad可導(dǎo)出的文件格式共有如下十種:1 3ds格式3d studio文件格式,可使用3dsout命令導(dǎo)出此種格式。2 mp格式設(shè)置無關(guān)的
42、位圖文件格式,可使用bmpout命令導(dǎo)出此種格式。3 dwg格式autocad圖形文件格式,可使用wblock命令導(dǎo)出dwg格式。4 dwf格式autocad圖形web格式,可使用dwfout命令導(dǎo)出此種格式。5 dxf格式autocad圖形交換文件格式,可使用dxfout命令導(dǎo)出此種格式。6 dxx格式dxf屬性抽取文件格式,用于將dxf屬性保存到一個文件中,可使用attext命令導(dǎo)出此格式。7 eps格式postscript文件格式,可使用psout命令導(dǎo)出此格式。8 sat格式acis實體對象文件格式,可使用acisout命令導(dǎo)出此種格式。9 stl格式實體對象立體化文件格式,可使用st
43、lout命令導(dǎo)出此格式。10wmf格式windows文件格式,可使用wmfout命令導(dǎo)出此格式。我們選擇autocad r12/lt2 dxf(*.dxf)格式,以便與mapinfo導(dǎo)入此格式。打開mapinfo,點擊“表轉(zhuǎn)入”可以看到“dxf轉(zhuǎn)入信息”對話框,如圖6:圖6:dxf轉(zhuǎn)入信息對話框勾選“創(chuàng)建分離的表”,則將把autocad中的分層圖逐一導(dǎo)入mapinfo并分別以*.tab的形式保存下來,以便于下一步處理地圖。3.4.2用mapinfo處理地圖用mapinfo處理地圖mapinfo的主窗口如圖7所示,其工具條主要包括常用工具條、主工具條、繪圖工具條和工具工具條。以下正文的文字大小也
44、應(yīng)是小四號,請大家參考時注意 1 81、主菜單 2、繪圖工具條 3、主工具條 4、常用工具條5、地圖窗口 6、工具工具條 7、瀏覽窗口 8、狀態(tài)欄圖7:mapinfo主窗口利用以上的工具,我們處理地圖:1、打開“地形tab”如圖8,上面的每一個點、每一條線、每一塊區(qū)域甚至注解都是一條紀(jì)錄,初始時有18977條紀(jì)錄,我們的目標(biāo)是將地圖簡化為一塊區(qū)域?qū)?yīng)一條紀(jì)錄的表。因此首先我們將不需要的注解、線條及框架刪除。2、 制作“行政tab”時,我們刪除行政樓以外的建筑,將行政樓的線條轉(zhuǎn)化為區(qū)域即選擇“對象”“轉(zhuǎn)化為區(qū)域”,用合適的顏色填充,必要的時候需要重畫線條,行政樓外的草坪也畫出進(jìn)行裝飾。3、 選擇
45、“表維護(hù)表結(jié)構(gòu)”如圖9,可以添加、刪除字段。在到瀏覽器界面中,添加信息(如圖10),這樣可以到地圖界面中點擊信息工具察看信息,點擊標(biāo)注工具對地圖進(jìn)行標(biāo)注。4、 選擇“表維護(hù)緊縮表”,緊縮地圖和表格數(shù)據(jù),這樣得到一張簡單清晰的表(如圖11)。記錄也變?yōu)閮H有15條了。5、 用相同的方法,我們處理其他分層圖。并制作一張底層圖作為分層圖的底層。 圖8:未處理前的地圖 圖9:修改表結(jié)構(gòu)對話框圖10:為地圖加標(biāo)注圖11:緊縮后的表3.4.3 mapinfo與delphi的無縫連接在開發(fā)“校園地理信息系統(tǒng)”時,將mapinfo professional和delphi連接起來。在delphi中嵌入mapinf
46、o校園圖形的資料,成為其界面的一部分,由delphi開發(fā)校園地理信息系統(tǒng)軟件,提供用戶控制和操作界面,用桌面圖形系統(tǒng)開發(fā)平臺mapinfo professional操縱和處理校園圖形資料。這些操縱包括圖形放大、縮小、漫游、信息標(biāo)注、空間查詢、圖層的添加和控制等。將delphi和mapinfo professional結(jié)合,取barland delphi軟件開發(fā)平臺的高效率、高可靠性、先進(jìn)的組件技術(shù)、完全支持activex和dde技術(shù)等優(yōu)勢,可開發(fā)出高質(zhì)量的圖形信息管理系統(tǒng)。圖12為delphi程序與mapinfo professional兩者在連結(jié)控制過程中的分工與地位,以及activex與d
47、de所扮演的角色。圖中包含三個虛框,左上一個為activex(ole)自動化;右上一個為delphi程序與mapinfo professional之間的控制連接;下方一個為mapinfo professional體系3。用戶操作delphi程序中心控制(activex客戶機) activex對象 控制 反饋消息 回調(diào)消息windows消息windows消息 控制與數(shù)據(jù)傳輸 dde回調(diào)mapinfo控制器(activex服務(wù)器) activex控制資料2資料3資料1 mapinfo處理圖層2 mapinfo處理圖層1 mapinfo數(shù)據(jù)庫圖12:delphi與mapinfo連接圖技術(shù)難點是從de
48、lphi控制mapinfo professional運行,并取得其服務(wù),操縱嵌入在delphi程序界面上的地圖資料:主要指在delphi程序中通過特定activex控制接口,執(zhí)行相應(yīng)接口方法函數(shù),向mapinfo professional發(fā)出控制命令,取得其服務(wù),達(dá)到操縱嵌入在delphi程序界面上的mapinfo地圖資料的目的。問題是如何控制mapinfo professional運行、如何取得activex接口方法、如何跟delphi程序界面上的地圖資料聯(lián)系起來,達(dá)到操縱該地圖的目的。 可以利用delphi對activex支持的函數(shù)啟動和控制mapinfo professional運行。這
49、時delphi程序是activex(ole)客戶應(yīng)用程序,控制mapinfo professional的運行;在后臺運行的mapinfo professional是activex(ole)自動化服務(wù)器,為delphi程序提供服務(wù)。在delphi的程序中集成mapinfo的地圖窗口是將mapinfo的地圖窗口調(diào)進(jìn)delphi開發(fā)的應(yīng)用程序界面中去,擴(kuò)充程序的功能。把地圖窗口應(yīng)用于其他程序中,這種程序開發(fā)方法,是一種程序集成的方法。具體做法是采用ole自動化技術(shù)。ole(object linking and embedding)是microsoft公司為解決window 下應(yīng)用程序間的通信問題而提
50、出的。但是到了今天,ole已演變?yōu)橐环N協(xié)議或規(guī)范,成為軟構(gòu)件集成技術(shù)的基礎(chǔ)。ole自動化(ole automation)技術(shù)是ole2.0新增加技術(shù),它使用戶通過編程在一個應(yīng)用程序中控制另一個應(yīng)用程序的對象,從而實現(xiàn)了應(yīng)用程序級別的可重用。在ole自動化這一技術(shù)領(lǐng)域中,由應(yīng)用程序或ole編程工具所展現(xiàn)的對象稱為ole自動化對象,訪問操作并控制該對象的應(yīng)用程序或ole編程工具則稱為ole自動化控制器,展現(xiàn)這些對象的應(yīng)用程序則稱為ole自動化服務(wù)器。ole自動化服務(wù)器展現(xiàn)的自動化對象使通過編程方法操縱應(yīng)用程序成為可能。通過使用ole自動化,能夠完成以下的任務(wù):1) 創(chuàng)建ole自動化服務(wù)器2) 創(chuàng)建
51、和操縱ole自動化對象3) 創(chuàng)建ole自動化控制器ole自動化服務(wù)器對象是編程的,其可編程能力主要是通過方法和屬性這兩個類的概念及兩種類型的ole自動化對象成員來實現(xiàn)。其中“方法”可以是帶有許多參數(shù)的函數(shù),它定義了一個對象所能達(dá)到并能完成的行為,同時可以獲取或設(shè)置數(shù)據(jù)?!皩傩浴眲t是不帶有形參的函數(shù),并能存取或設(shè)置有關(guān)對象當(dāng)前狀態(tài)的信息。實際上,ole自動化技術(shù)就是使任何對象展示出一組可以由其他代碼激活的方法和屬性,而自動化提供了對象描述中參數(shù)和屬性的名稱和類型的方法。使用ole帶來的好處是,不同應(yīng)用程序展現(xiàn)的對象在同一編程環(huán)境中都是可見的,展現(xiàn)的對象可以用任何一個支持ole自動化的編程工具或宏語言來訪問,因此系統(tǒng)集成者可以選擇最合適的任務(wù)開發(fā)工具。mapinfo提供的ole自動化對象模型如圖13所示。8mbglobals mifieldsmirows miselection mifieldsmirowsmisearchinfomimapgenmbapplicationapplication 對象 對象和對象集 圖13:ole自動化對象模型其中application對象代表mapinfo的一個實例。在mbapplication集和mbglobals集中,每一個對象分別
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人土地?zé)o償贈與合同范本
- 個人家政保潔合同范本
- 制定合同范本 作用
- fidic條件合同范本
- 買賣延期合同范本
- 醫(yī)用機甲租賃合同范本
- 凈水設(shè)備售賣合同范本
- 勞動合同范本藥店
- 出租和諧公寓合同范本
- 修建垃圾臺合同范本
- 無人機警用解決方案樣本
- 健康體檢項目目錄
- 現(xiàn)代交換原理與技術(shù)課件:第5章 分組交換技術(shù)
- 學(xué)校傳染病報告處置流程圖
- 大小嶝造地工程陸域形成及地基處理標(biāo)段1施工組織設(shè)計
- 物理化學(xué)(全套427頁PPT課件)
- 肺斷層解剖及CT圖像(77頁)
- LeapMotion教程之手勢識別
- 靜脈導(dǎo)管的護(hù)理與固定方法
- word上機操作題
- 房地產(chǎn)公司管理制度
評論
0/150
提交評論