版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 南京大學(xué)金陵學(xué)院</b></p><p> 本 科 畢 業(yè) 論 文</p><p> 院 系 城市與資源學(xué)院 </p><p> 題 目 基于底層的校園智能助手的開發(fā) </p><p> 專 業(yè) 地理信息系統(tǒng)
2、 </p><p> 學(xué)生姓名 </p><p> 指導(dǎo)老師 職稱 副教授 </p><p> 職稱 助教 </p><p> 論文提交日期 </
3、p><p> 南 京 大 學(xué) 金 陵 學(xué) 院</p><p> 本科生畢業(yè)論文(設(shè)計(jì))指導(dǎo)情況記錄</p><p><b> - 1 -</b></p><p> 南 京 大 學(xué) 金 陵 學(xué) 院</p><p> 本科生畢業(yè)論文(設(shè)計(jì))評(píng)閱意見</p><p><
4、;b> - 2 -</b></p><p> 南 京 大 學(xué) 金 陵 學(xué) 院</p><p> 本科生畢業(yè)論文(設(shè)計(jì))答辯記錄、成績?cè)u(píng)定</p><p><b> - 3 -</b></p><p> 南京大學(xué)金陵學(xué)院本科畢業(yè)論文中文摘要首頁用紙</p><p> 畢
5、業(yè)論文題目: 基于底層的校園智能助手的開發(fā) </p><p><b> 摘 要</b></p><p> 校園智能助手是以高校校園地理信息為主要管理內(nèi)容,并與其他校園學(xué)習(xí)、生活信息相結(jié)合的綜合性軟件系統(tǒng)。南京大學(xué)金陵學(xué)院校區(qū)龐大、浦苑教學(xué)樓設(shè)計(jì)獨(dú)特、結(jié)構(gòu)復(fù)雜,給同學(xué)們提供優(yōu)越的條件的同時(shí)也給同學(xué)們帶來一定的麻煩。為了解決同學(xué)們?cè)谛@生活和
6、校園學(xué)習(xí)中的一些不方便問題,比如學(xué)校各棟教學(xué)樓的情況、哪個(gè)教室現(xiàn)時(shí)段是空置的、如何快速到達(dá)你尋覓的教室、校區(qū)內(nèi)商鋪的有關(guān)信息等等,而開發(fā)的一款自主設(shè)計(jì)研發(fā)基于MFC底層的多平臺(tái)校園智能助手軟件。</p><p> 本系統(tǒng)搭建在PC平臺(tái)和移動(dòng)GIS平臺(tái)上,具有加載Shapefile格式的數(shù)據(jù)文件、基本地圖操作功能、校園建筑物基本信息查詢功能、2.5D教學(xué)樓尋路功能、自習(xí)教室查詢與管理、商鋪信息及商品信息查詢功能等
7、。</p><p> 通過該系統(tǒng),用戶只要幾分鐘就能對(duì)南京大學(xué)金陵學(xué)院的綜合情況有一個(gè)清楚的認(rèn)識(shí),大大方便用戶的校園生活。 </p><p> 關(guān)鍵詞:底層開發(fā),多平臺(tái),智能助手</p><p> 南京大學(xué)金陵學(xué)院本科畢業(yè)論文英文摘要首頁用紙</p><p> THESIS: Development of campus intelli
8、gent assistant based on underlying</p><p><b> Abstract</b></p><p> Campus Intelligent Assistant is a comprehensive software system of geographical information of the university cam
9、pus as the main management of content, and learn with other campus life information were combined.The campus of Nanjing University Jinling Collage is very large,the main teaching building-Puyuan has complex structure and
10、 unique design.Provide favorable conditions to the students but also to bring some trouble to the scholastics.In order to solve the inconvenient problem of students in</p><p> This software system based on
11、PC platform and mobile GIS platform,has these main function:load and display format of shpfile data,conduct GIS data manipulation on views,display information of building,navigation in teaching building based on 2.5D vie
12、w,inquiry and management of self-study classrooms.inquiry of shop and commodity in the shop.</p><p> Through the system, users will have a a clear understanding of Nanjing University Jinling Collage in a fe
13、w minutes,convenient user campus living.</p><p> Keyword:Underlying development ,Multi-platform ,Intelligent Assistant</p><p><b> 目 錄</b></p><p><b> 摘 要I</b
14、></p><p> AbstractII</p><p><b> 目 錄III</b></p><p><b> 第一章 緒論1</b></p><p> 1.1論文研究背景及意義1</p><p> 1.2地理信息系統(tǒng)開發(fā)現(xiàn)狀概述2</p
15、><p> 1.2.1國外地理信息系統(tǒng)開發(fā)現(xiàn)狀2</p><p> 1.2.2國內(nèi)地理信息系統(tǒng)開發(fā)現(xiàn)狀3</p><p> 1.2.3校園地理信息系統(tǒng)開發(fā)現(xiàn)狀綜合4</p><p> 1.3論文研究主要內(nèi)容和目的4</p><p> 1.4系統(tǒng)開發(fā)流程及論文結(jié)構(gòu)4</p><p>
16、; 第二章 底層技術(shù)及理論基礎(chǔ)6</p><p> 2.1開發(fā)語言C++及VC++開發(fā)平臺(tái)6</p><p> 2.1.1 C++語言的優(yōu)點(diǎn)6</p><p> 2.1.2 VC++開發(fā)平臺(tái)7</p><p> 2.2微軟基礎(chǔ)類庫MFC8</p><p> 2.2.1 MFC概述8</p&
17、gt;<p> 2.2.2 MFC與VC++平臺(tái)8</p><p> 2.2.3底層GIS的消息映射機(jī)制8</p><p> 2.3移動(dòng)智能平臺(tái)開發(fā)9</p><p> 2.3.1移動(dòng)智能設(shè)備開發(fā)概述9</p><p> 2.3.2 Visual Stdio與移動(dòng)智能設(shè)備開發(fā)的結(jié)合10</p>
18、<p> 2.4地理信息系統(tǒng)算法10</p><p> 2.4.1地理信息系統(tǒng)基本算法10</p><p> 2.4.2平面數(shù)據(jù)的變換算法10</p><p> 2.4.3路徑分析算法11</p><p> 2.5 數(shù)據(jù)的采集和輸入12</p><p> 第三章 校園智能助手的設(shè)計(jì)與實(shí)現(xiàn)
19、15</p><p> 3.1校園智能助手介紹15</p><p> 3.1.1校園智能助手的概念15</p><p> 3.1.2 校園智能助手的特征15</p><p> 3.1.3 校園智能助手的軟硬件組成15</p><p> 3.2 PC平臺(tái)的校園智能助手的設(shè)計(jì)與實(shí)現(xiàn)16</p&g
20、t;<p> 3.2.1 PC平臺(tái)系統(tǒng)整體設(shè)計(jì)16</p><p> 3.2.2 PC平臺(tái)系統(tǒng)功能設(shè)計(jì)17</p><p> 3.2.3 PC平臺(tái)系統(tǒng)界面設(shè)計(jì)32</p><p> 3.3移動(dòng)GIS平臺(tái)的校園智能助手的設(shè)計(jì)與實(shí)現(xiàn)32</p><p> 3.3.1移動(dòng)GIS平臺(tái)系統(tǒng)整體設(shè)計(jì)32</p>
21、;<p> 3.3.2移動(dòng)GIS平臺(tái)系統(tǒng)功能設(shè)計(jì)33</p><p> 3.3.3移動(dòng)GIS平臺(tái)系統(tǒng)界面設(shè)計(jì)35</p><p> 第四章 總結(jié)與展望36</p><p><b> 4.1總結(jié)36</b></p><p><b> 4.2展望36</b></p
22、><p><b> 參考文獻(xiàn)38</b></p><p><b> 致謝40</b></p><p><b> 第一章 緒論</b></p><p> 1.1論文研究背景及意義</p><p> 地理信息系統(tǒng)(GIS)作為獲取、存儲(chǔ)、分析和管理
23、地理空間數(shù)據(jù)的重要工具、技術(shù)和學(xué)科[],近年來得到了廣泛關(guān)注和迅猛發(fā)展。這種發(fā)展不僅僅是地理信息系統(tǒng)有關(guān)概念的發(fā)展,更是地理信息系統(tǒng)相關(guān)軟件的發(fā)展。借助著計(jì)算機(jī)技術(shù)的日新月異,各種地理信息系統(tǒng)軟件也應(yīng)運(yùn)而生。這些軟件解決了許多人們?cè)谌粘I钪杏龅降姆N種難題,或是方便了人們的生活,提升了人們的生活質(zhì)量。大體來說,地理信息系統(tǒng)軟件的開發(fā)可以分為:測(cè)繪、規(guī)劃、遙感等等多個(gè)方向,但這些方向并不孤立存在,很多時(shí)候它們相互結(jié)合,形成一個(gè)綜合的地理信
24、息系統(tǒng)[]。舉個(gè)例子,就拿近些年得到廣泛應(yīng)用的汽車導(dǎo)航尋路系統(tǒng)來說,涉及GPS定位與導(dǎo)航,道路最優(yōu)路徑分析、即時(shí)分析等多方面。如果說汽車導(dǎo)航尋路系統(tǒng)是為有車一族準(zhǔn)備的,那么離同學(xué)大學(xué)生活比較近貼近的地理信息系統(tǒng)開發(fā)方面的應(yīng)用又有哪些呢?比較有代表性的要數(shù)數(shù)字校園系統(tǒng)了。數(shù)字校園是由數(shù)字地球演化而來,從概念上來說,數(shù)字校園以網(wǎng)絡(luò)為基礎(chǔ),利用先進(jìn)的信息化手段和工具,實(shí)現(xiàn)從環(huán)境、資源到活動(dòng)的全部數(shù)字化,最終實(shí)現(xiàn)信息全面數(shù)字化,從而提升校園管理
25、水平和效益的目的[]。從效果上來看,數(shù)字校園以信息可視化的形式向用戶展示</p><p> 先拿校園尋路導(dǎo)航技術(shù)來說。如今,由于信息技術(shù)的發(fā)展,數(shù)字時(shí)代的來臨,人們對(duì)導(dǎo)航技術(shù)的要求也越來越高,以前流行的在同一平面上的導(dǎo)航尋路已經(jīng)不能滿足客戶日益增長的需要,人們迫切需要多空間的尋路方式。大學(xué)教師和同學(xué)或許有這樣的感覺,學(xué)校越來越大了,教學(xué)樓也隨著不斷擴(kuò)建結(jié)構(gòu)變得越來越復(fù)雜,找教室變成了一件比較頭疼的事情。而教學(xué)樓
26、每層的單一的平面圖沒法滿足老師和同學(xué)“看圖知路”的需要,都期盼著有所改變??偠灾藗儗?duì)校園教學(xué)樓導(dǎo)航的需求和要求也越來越高。</p><p> 信息可視化技術(shù)主要旨在研究大規(guī)模非數(shù)值型信息資源的視覺呈現(xiàn),幫助人們理解和分析數(shù)據(jù)。信息可視化囊括了數(shù)據(jù)可視化、信息圖形、知識(shí)可視化、科學(xué)可視化以及視覺設(shè)計(jì)方面的所有發(fā)展與進(jìn)步[]。在這種層次上,如果加以充分適當(dāng)?shù)慕M織整理,任何事物都是一類信息:表格、圖形、地圖,甚
27、至包括文本在內(nèi),無論其是靜態(tài)的還是動(dòng)態(tài)的,都將為我們提供某種方式或手段,從而讓我們能夠洞察其中的究竟,找出問題的答案,發(fā)現(xiàn)形形色色的關(guān)系,或許還能讓我們理解在其他形式的情況下不易發(fā)覺的事情??梢暬谋磉_(dá)形式與交互技術(shù)則是利用人類眼睛通往心靈深處的廣闊帶寬優(yōu)勢(shì),使得用戶能夠目睹、探索以至立即理解大量的信息[]。大學(xué)校園里每天都有大量的信息在流動(dòng),如何將重要的、有用的信息提取出來,以適當(dāng)?shù)男问礁嬷瑢W(xué)們,成為信息可視化在校園應(yīng)用方面需要解決
28、的問題。借助計(jì)算機(jī)技術(shù)和信息管理技術(shù)的發(fā)展,許多學(xué)校都開發(fā)了適合自己學(xué)校的信息發(fā)布和管理平臺(tái),讓同學(xué)們足不出戶便知校園事[]。</p><p> 虛擬現(xiàn)實(shí)技術(shù)是利用電腦模擬產(chǎn)生一個(gè)三維空間的虛擬世界,提供使用者關(guān)于視覺、聽覺、觸覺等感官的模擬,讓使用者如同身歷其境一般,可以及時(shí)、沒有限制地觀察三度空間內(nèi)的事物[]。將校園的整體情況借助虛擬現(xiàn)實(shí)技術(shù)展示給用戶,可以加深用戶對(duì)學(xué)校環(huán)境的了解。</p>
29、<p> 拿我校南京大學(xué)金陵學(xué)院為例,學(xué)院有多棟建筑物構(gòu)成,光教學(xué)區(qū)就有浦苑教學(xué)區(qū)、玉輝樓教學(xué)區(qū)和西平教學(xué)區(qū)三部分。其中以浦苑教學(xué)區(qū)結(jié)構(gòu)最為復(fù)雜,由三棟結(jié)構(gòu)各異的建筑物連成一體,給同學(xué)們提供優(yōu)越的自習(xí)環(huán)境的同時(shí)也給同學(xué)們帶來一定的麻煩。同時(shí),校園內(nèi)各主要建筑的尋路對(duì)于那些不太熟悉校園的老師和同學(xué)也是一大難題,同時(shí),還面臨著校園信息發(fā)布形式老舊、不通暢、不能快速及時(shí)的發(fā)布等問題。如何開發(fā)一個(gè)合適的校園地理信息系統(tǒng)軟件,解決這些
30、困擾老師同學(xué)們的問題成了當(dāng)務(wù)之急。</p><p> 1.2地理信息系統(tǒng)開發(fā)現(xiàn)狀概述</p><p> 地理信息系統(tǒng)的開發(fā)是計(jì)算機(jī)軟件開發(fā)與地理信息系統(tǒng)相關(guān)知識(shí)的結(jié)合,計(jì)算機(jī)軟件工程為系統(tǒng)提供框架、數(shù)據(jù)存儲(chǔ)等支持,地理信息系統(tǒng)相關(guān)知識(shí)為解決具體問題提供方法論的指導(dǎo)。大體來說,地理信息系統(tǒng)開發(fā)可以分為底層開發(fā)和二次開發(fā)。地理信息系統(tǒng)的底層開發(fā)一般采用C或者C++,開發(fā)系統(tǒng)的后臺(tái)或是網(wǎng)絡(luò)的
31、基端,也可以理解成最接近于硬件的開發(fā),最基礎(chǔ)最重要的開發(fā)。 地理信息系統(tǒng)的二次開發(fā)是指簡單的說就是在現(xiàn)有的地理信息系統(tǒng)軟件如ArcGIS上進(jìn)行定制修改,功能的擴(kuò)展,然后達(dá)到自己想要的功能,一般來說都不會(huì)改變?cè)邢到y(tǒng)的內(nèi)核。就目前的開發(fā)情況來看,地理信息系統(tǒng)的開發(fā)多以二次開發(fā)為主。</p><p> 1.2.1國外地理信息系統(tǒng)開發(fā)現(xiàn)狀</p><p> 國外因?yàn)榻佑|地理信息系統(tǒng)這一概念比
32、較早,開發(fā)的情況也走在中國前面。美國的ESRI公司是世界上最大的地理信息系統(tǒng)軟件的提供商,其開發(fā)的ArcGIS、ArcInfo、ArcView等軟件更是成為了地理信息系統(tǒng)軟件的代表,ArcGIS所提供的ArcEngine更是為地理信息系統(tǒng)開發(fā)者提供了友好的開發(fā)界面和方便的SDK[]。而MapInfo公司開發(fā)的Mapinfo雖然偏向于數(shù)據(jù)輸入和查詢以及圖形顯示,但其提供的MapBasic語言為Mapinfo二次開發(fā)提供了基礎(chǔ)。二次開發(fā)出的
33、地理信息系統(tǒng)軟件雖然占有很大一部分市場(chǎng),但底層開發(fā)的地理信息系統(tǒng)軟件依舊在很多領(lǐng)域發(fā)揮作用。</p><p> 就校園地理信息系統(tǒng)開發(fā)來說,國外有很多大學(xué)建立了自己學(xué)校的數(shù)字校園系統(tǒng),比如澳洲國立大學(xué)(Australian National University),在其主頁上ANU Campus Map提供了校區(qū)平面圖,可以進(jìn)行主要建筑物信息的查詢,并提供簡單的地圖操作功能。其他的諸如加州大學(xué)洛杉磯分校分校(U
34、niversity of California, Los Angeles),除了具有校區(qū)平面圖方便用戶進(jìn)行查詢之外,還提供了用戶所在位置到校區(qū)的導(dǎo)航功能,以文字形式作出指引。而俄亥俄大學(xué)(Ohio State University at Columbus)則是用2.5D插畫的形式將校園情況展示出來,表達(dá)效果更為突出。總體來說國外校園地理信息系統(tǒng)開發(fā)還是比較完善的,功能和表現(xiàn)形式都可圈可點(diǎn)。</p><p> 1
35、.2.2國內(nèi)地理信息系統(tǒng)開發(fā)現(xiàn)狀</p><p> 國內(nèi)比較有名的地理信息系統(tǒng)公司要數(shù)超圖公司和中地?cái)?shù)碼公司。超圖公司SuperMap是具有完全自主知識(shí)產(chǎn)權(quán)的大型地理信息系統(tǒng)軟件平臺(tái)。包括組件式GIS開發(fā)平臺(tái)、服務(wù)式GIS開發(fā)平臺(tái)、嵌入式GIS開發(fā)平臺(tái)、桌面GIS平臺(tái)、導(dǎo)航應(yīng)用開發(fā)平臺(tái)以及相關(guān)的空間數(shù)據(jù)生產(chǎn)、加工和管理工具。中地?cái)?shù)碼公司的MapGIS是中國具有完全自主知識(shí)版權(quán)的地理信息系統(tǒng),是全球唯一的搭建式G
36、IS數(shù)據(jù)中心集成開發(fā)平臺(tái),實(shí)現(xiàn)遙感處理與GIS完全融合,支持空中、地上、地表、地下全空間真三維一體化的GIS開發(fā)平臺(tái)。國內(nèi)的二次開發(fā)主要是基于這兩個(gè)軟件平臺(tái)進(jìn)行的。</p><p> 目前,越來越多的國內(nèi)高校也開始了各自的數(shù)字校園建設(shè),紛紛在學(xué)校的網(wǎng)絡(luò)上發(fā)布各自的校園地圖供用戶使用,展示效果絲毫不遜色于國外。如哈爾濱工業(yè)大學(xué)三維虛擬數(shù)字校園,以2.5D結(jié)合3D的方式對(duì)校園的建筑物進(jìn)行展示,還提供了導(dǎo)航和地圖直線
37、量算功能。國立臺(tái)灣大學(xué)雖然校園地圖的形式是以2D展示的,但與其他校園不同的是它提供了面積量算和360度全周天校園街景。中國礦業(yè)大學(xué)更是提供了校園真三維漫游功能。但是,從總體來說,國內(nèi)大學(xué)的數(shù)字校園表現(xiàn)形式主要還是以平面圖的單一形式,地圖制作的比較簡單,并只能提供基本建筑物的查詢,而且信息也不夠全面,功能上有所欠缺,使得用戶在使用的時(shí)候往往對(duì)校園的情況了解不夠。</p><p> 1.2.3校園地理信息系統(tǒng)開發(fā)現(xiàn)
38、狀綜合</p><p> 綜合來看,國內(nèi)外校園地理信息系統(tǒng)在表現(xiàn)上各有千秋,比如通過三維虛擬現(xiàn)實(shí)技術(shù)實(shí)現(xiàn)高??臻g數(shù)據(jù)的制作、2.5D仿真地圖制作、高校校園全景圖片的采集與制作、實(shí)現(xiàn)高校校園地圖和三維全景圖片多通道景點(diǎn)信息整合平臺(tái)的開發(fā)等??傮w來說,這些系統(tǒng)界面很友好,校園也多有三維或二維展示,從表現(xiàn)效果上來說可謂一個(gè)比一個(gè)漂亮,一個(gè)比一個(gè)感覺更有真實(shí)感。但他們?cè)谧非笳鎸?shí)感和表現(xiàn)力的同時(shí),往往忽略了空間分析功能,
39、對(duì)于諸如最優(yōu)路徑分析、空間量算等方面有所欠缺。而一些同學(xué)們?cè)谛@生活中常見的問題,這些系統(tǒng)也沒能很好的解決,比如找自習(xí)教室問題,校園商鋪商品信息查詢問題等。更值得引起注意的是,絕大多數(shù)系統(tǒng)只建立于一個(gè)平臺(tái)之上,忽略了其他平臺(tái)客戶的需求,給用戶帶來了不方便。</p><p> 1.3論文研究主要內(nèi)容和目的</p><p> 針對(duì)國內(nèi)外校園地理信息系統(tǒng)現(xiàn)況的分析和南京大學(xué)金陵學(xué)院校園的實(shí)際
40、情況及廣大師生的需求,南京大學(xué)金陵學(xué)院校園智能助手軟件應(yīng)運(yùn)而生。南京大學(xué)金陵學(xué)院校園智能助手軟件就是一款滿足人們對(duì)校園及教學(xué)樓尋路及條件查找的需求的軟件。通過該軟件,用戶只要幾分鐘,就能對(duì)南京大學(xué)金陵學(xué)院的整體情況和浦苑教學(xué)樓的內(nèi)部樓層有一個(gè)清楚的認(rèn)識(shí),可以輕松查找滿足用戶需求條件的教室,讓需要自習(xí)的同學(xué)不再有四處找教室的煩惱;校園主要建筑物和樓層間的尋路導(dǎo)航,更是讓初到南京大學(xué)金陵學(xué)院的人員不再有迷路的煩惱。同時(shí),為了方便同學(xué)們的校園
41、生活,校園智能助手還提供校內(nèi)主要商鋪商品信息的查詢及優(yōu)惠信息的發(fā)布。真正做到足不出戶便知校園事。</p><p> 1.4系統(tǒng)開發(fā)流程及論文結(jié)構(gòu)</p><p> 本系統(tǒng)開發(fā)采用底層開發(fā),采用GIS設(shè)計(jì)課程中學(xué)到的原型法開發(fā)方法和計(jì)算機(jī)編程自底向上的編程方法相結(jié)合進(jìn)行開發(fā)。原型法是指在獲取一組基本的需求定義后,快速地建立一個(gè)目標(biāo)系統(tǒng)的最初版本,并把它反復(fù)修改,不斷完善。直到系統(tǒng)完成[]
42、。自底向上是指在設(shè)計(jì)具有層次結(jié)構(gòu)的大型程序時(shí),先設(shè)計(jì)一些較下層的程序,即去解決問題的各個(gè)不同的小部分,然后把這些部分組合成為完整的程序。論文的具體時(shí)間安排為3月份查找大量資料,分析系統(tǒng)可以實(shí)現(xiàn)的功能等。4月進(jìn)行開發(fā),并完成基本開發(fā)文檔,5月初完成畢業(yè)論文的寫作。</p><p> 圖1.1 系統(tǒng)開發(fā)階段流程圖</p><p> Fig 1.1 Flowsheet of system d
43、evelopment</p><p> 在論文結(jié)構(gòu)方面,本論文分為四章,對(duì)南京大學(xué)金陵學(xué)院校園智能助手進(jìn)行全面的介紹:</p><p> 緒論,主要介紹論文研究的背景和意義、國內(nèi)外地理信息系統(tǒng)開發(fā)現(xiàn)況等。</p><p> 底層技術(shù)及理論基礎(chǔ),本章介紹底層開發(fā)的平臺(tái)、技術(shù)、相關(guān)算法及數(shù)據(jù)的采集等。</p><p> 校園智能助手的設(shè)計(jì)
44、與實(shí)現(xiàn),本章詳細(xì)介紹單機(jī)平臺(tái)和移動(dòng)GIS平臺(tái)上校園智能助手的各項(xiàng)功能及實(shí)現(xiàn)手段</p><p> 總結(jié)與展望,本章是對(duì)論文研究進(jìn)行回顧總結(jié)和展望未來系統(tǒng)的應(yīng)用。</p><p> 第二章 底層技術(shù)及理論基礎(chǔ)</p><p> 2.1開發(fā)語言C++及VC++開發(fā)平臺(tái)</p><p> 美國AT&T貝爾實(shí)驗(yàn)室的本賈尼·斯
45、特勞斯特盧普博士在20世紀(jì)80年代初期發(fā)明并實(shí)現(xiàn)了C++。一開始C++是作為C語言的增強(qiáng)版出現(xiàn)的,從給C語言增加類開始,不斷的增加新特性。虛函數(shù)、運(yùn)算符重載、多重繼承、模板、異常、RTTI、命名空間逐漸被加入標(biāo)準(zhǔn)。1998年國際標(biāo)準(zhǔn)組織(ISO)頒布了C++程序設(shè)計(jì)語言的國際標(biāo)準(zhǔn)ISO/IEC 1988-1998。C++是具有國際標(biāo)準(zhǔn)的編程語言,通常稱作ANSI/ISOC++[]。 </p><p> Micr
46、osoft Visual C++是Microsoft公司推出的開發(fā)Win32環(huán)境程序,面向?qū)ο蟮目梢暬删幊滔到y(tǒng)。它不但具有程序框架自動(dòng)生成、靈活方便的類管理、代碼編寫和界面設(shè)計(jì)集成交互操作、可開發(fā)多種程序等優(yōu)點(diǎn),而且通過簡單的設(shè)置就可使其生成的程序框架支持?jǐn)?shù)據(jù)庫接口、OLE2,WinSock網(wǎng)絡(luò)、3D控制界面[]。 </p><p> 2.1.1 C++語言的優(yōu)點(diǎn)</p><p>
47、; C++語言是對(duì)C語言的擴(kuò)展,是C語言的超集。簡單來說,C++與C完全兼容。C++既可用于結(jié)構(gòu)化程序設(shè)計(jì),又可用于面向?qū)ο蟮某绦蛟O(shè)計(jì)。C++對(duì)C的增強(qiáng)和擴(kuò)展,主要表現(xiàn)在兩個(gè)方面:1、在原來面向過程的機(jī)制基礎(chǔ)上,對(duì)C語言的功能做了不少擴(kuò)充。2、增加了面向?qū)ο蟮臋C(jī)制。</p><p> 具體來說,C++與C相比,其優(yōu)點(diǎn)在于:</p><p> C++與C語言兼容,既支持面向?qū)ο蟮某绦蛟O(shè)
48、計(jì),也支持結(jié)構(gòu)化的程序設(shè)計(jì)。同時(shí),熟悉C語言的程序員,能夠迅速掌握C++語言。</p><p> C++修補(bǔ)了C語言中的一些漏洞,提供更好的類型檢查和編譯時(shí)的分析。使得程序員在C++環(huán)境下繼續(xù)寫C代碼,也能得到直接的好處。</p><p> C++生成目標(biāo)程序質(zhì)量高,程序執(zhí)行效率高。一般來說,用面向?qū)ο蟮腃++編寫的程序執(zhí)行速度與C語言程序不相上下。</p><p&
49、gt; C++提供了異常處理機(jī)制,簡化了程序的出錯(cuò)處理。利用throw、try和catch關(guān)鍵字,使出錯(cuò)處理程序不必與正常的代碼緊密結(jié)合,提高了程序的可靠性和可讀性。</p><p> C++函數(shù)可以重載。重載允許相同的函數(shù)名具有不同參數(shù)表,系統(tǒng)根據(jù)參數(shù)的個(gè)數(shù)和類型匹配相應(yīng)的函數(shù)。</p><p> C++在一定程度上可以和C語言很好的結(jié)合,甚至目前大多數(shù)C語言程序是在C++的集成開
50、發(fā)環(huán)境中完成的。C++相對(duì)眾多的面向?qū)ο蟮恼Z言,具有相當(dāng)高的性能。</p><p> C++引入了面向?qū)ο蟮母拍睿沟瞄_發(fā)人機(jī)交互類型的應(yīng)用程序更為簡單、快捷。很多優(yōu)秀的程序框架包括MFC、QT、wxWidgets就是使用的C++。</p><p> C++提供了模板機(jī)制。模板包括類模板和函數(shù)模板兩種,它們將數(shù)據(jù)類型作為參數(shù)。對(duì)于具體數(shù)據(jù)類型,編譯器自動(dòng)生成模板類或模板函數(shù),它提供了源
51、代碼復(fù)用的一種手段[]。</p><p> 2.1.2 VC++開發(fā)平臺(tái)</p><p> 本系統(tǒng)單機(jī)部分采用Visual C++ 6.0版本進(jìn)行開發(fā)。手機(jī)部分采用Visual Stdio 2008進(jìn)行開發(fā)。</p><p> Visual C++6.0由Microsoft開發(fā), 它不僅是一個(gè)C++ 編譯器,而且是一個(gè)基于Windows操作系統(tǒng)的可視化集成開發(fā)
52、環(huán)境(integrated development environment,IDE)。Visual C++6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lass Wizard等開發(fā)工具。 這些組件通過一個(gè)名為Developer Studio的組件集成為和諧的開發(fā)環(huán)境。Visual C++6.0以擁有“語法高亮”,自動(dòng)編譯功能以及高級(jí)除錯(cuò)功能而著稱。比如,它允許用戶進(jìn)行遠(yuǎn)程調(diào)試,單步執(zhí)行等。還有允許用戶在
53、調(diào)試期間重新編譯被修改的代碼,而不必重新啟動(dòng)正在調(diào)試的程序。其編譯及創(chuàng)建預(yù)編譯頭文件(stdafx.h)、最小重建功能及累加連結(jié)(link)著稱。這些特征明顯縮短程序編輯、編譯及連結(jié)的時(shí)間花費(fèi),在大型軟件計(jì)劃上尤其顯著。</p><p> Visual Studio 2008是微軟公司推出的開發(fā)環(huán)境,可以用來創(chuàng)建 Windows 平臺(tái)下的 Windows 應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,也可以用來創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備
54、應(yīng)用程序和 Office 插件。Visual Studio 是目前最流行的 Windows 平臺(tái)應(yīng)用程序開發(fā)環(huán)境。Visual Studio 2008 包括各種增強(qiáng)功能,例如可視化設(shè)計(jì)器(使用 .NET Framework 3.5 加速開發(fā))、對(duì) Web 開發(fā)工具的大量改進(jìn),以及能夠加速開發(fā)和處理所有類型數(shù)據(jù)的語言增強(qiáng)功能。它為開發(fā)人員提供了所有相關(guān)的工具和框架支持,幫助創(chuàng)建引人注目的、令人印象深刻并支持 AJAX 的 Web 應(yīng)用程序
55、。開發(fā)人員能夠利用這些豐富的客戶端和服務(wù)器端框架輕松構(gòu)建以客戶為中心的 Web 應(yīng)用程序,這些應(yīng)用程序可以集成任何后端數(shù)據(jù)提供程序、在任何當(dāng)前瀏覽器內(nèi)運(yùn)行并完全訪問 ASP NET 應(yīng)用程序服務(wù)和 Microsoft 平臺(tái)[]。</p><p> 2.2微軟基礎(chǔ)類庫MFC</p><p> 2.2.1 MFC概述</p><p> MFC(Microsoft
56、Foundation Classes),是一個(gè)微軟公司提供的類庫(class libraries),以C++類的形式封裝了Windows的API,并且包含一個(gè)應(yīng)用程序框架,以減少應(yīng)用程序開發(fā)人員的工作量。其中包含的類包含大量Windows句柄封裝類和很多Windows的內(nèi)建控件和組件的封裝類。類庫提供一組通用的可重用的類庫供開發(fā)人員使用。大部分類均從CObject 直接或間接派生,只有少部分類例外。MFC 應(yīng)用程序的總體結(jié)構(gòu)通常由開發(fā)人
57、員從MFC類派生的幾個(gè)類和一個(gè)CWinApp類對(duì)象(應(yīng)用程序?qū)ο螅┙M成。MFC 提供了MFC AppWizard 自動(dòng)生成框架。此外MFC的部分類為MFC/ATL 通用,可以在Win32 應(yīng)用程序中單獨(dú)包含并使用這些類[] 。</p><p> 2.2.2 MFC與VC++平臺(tái)</p><p> MFC是微軟用于在C++環(huán)境下編寫應(yīng)用程序的一個(gè)框架和引擎,VC++是Windows下開發(fā)
58、人員使用的專業(yè)C++ SDK(Standard SoftWare Develop Kit,專業(yè)軟件開發(fā)平臺(tái)),MFC就是掛在它之上的一個(gè)輔助軟件開發(fā)包。作為與VC++血肉相連的部分,將Win API與C++緊密結(jié)合,隱藏了在Windows下編譯時(shí)的大量細(xì)節(jié),如應(yīng)用程序?qū)崿F(xiàn)消息的處理,設(shè)備環(huán)境繪圖等。簡單的說,MFC為使用VC++平臺(tái)開發(fā)Windows應(yīng)用程序提供了類庫上的支持。</p><p> 2.2.3底層
59、GIS的消息映射機(jī)制</p><p> MFC利用ClassWizard來幫助實(shí)現(xiàn)消息映射,ClassWizard會(huì)在源碼中添加一些消息映射的內(nèi)容,并聲明和實(shí)現(xiàn)消息響應(yīng)函數(shù)。一個(gè)消息,是系統(tǒng)定義的一個(gè)32位的值,他唯一的定義了一個(gè)事件,向Windows發(fā)出一個(gè)通知,告訴應(yīng)用程序某個(gè)事情發(fā)生了。例如,單擊鼠標(biāo)、改變窗口尺寸、按下鍵盤上的一個(gè)鍵都會(huì)使Windows發(fā)送一個(gè)消息給應(yīng)用程序。消息可以由系統(tǒng)或者應(yīng)用程序產(chǎn)
60、生。系統(tǒng)在發(fā)生輸入事件時(shí)產(chǎn)生消息。所謂消息映射,就是把Windows系統(tǒng)的各種消息映射到MFC類庫的成員函數(shù)上的一種機(jī)制。MFC提供了幫助工具ClassWizard來實(shí)現(xiàn)消息映射,在處理消息的類中添加一些有關(guān)消息映射的內(nèi)容,并添加一些處理消息的成員函數(shù)。</p><p> 圖2.1 MFC消息映射原理</p><p> Fig 2.1 Principle of message mapp
61、ing based on MFC</p><p> 2.3移動(dòng)智能平臺(tái)開發(fā)</p><p> 2.3.1移動(dòng)智能設(shè)備開發(fā)概述</p><p> 智能終端設(shè)備是指那些具有多媒體功能的移動(dòng)智能設(shè)備這些設(shè)備支持音頻、視頻、數(shù)據(jù)等方面的功能.如:智能手機(jī)、可視電話、PDA等。而移動(dòng)智能設(shè)備開發(fā)則是指開發(fā)在設(shè)備本身上運(yùn)行的基于相應(yīng)操作系統(tǒng)的胖客戶端應(yīng)用程序。目前的主流移
62、動(dòng)智能設(shè)備的操作系統(tǒng)有蘋果的iso、谷歌的安卓、微軟的Windows Mobile、諾基亞的塞班等。本系統(tǒng)手機(jī)客戶端運(yùn)行于微軟Windows Mobile5.0操作系統(tǒng)上,Windows Mobile(簡稱:WM)是微軟針對(duì)移動(dòng)設(shè)備而開發(fā)的操作系統(tǒng)。該操作系統(tǒng)的設(shè)計(jì)初衷是盡量接近于桌面版本的Windows,微軟按照電腦操作系統(tǒng)的模式來設(shè)計(jì)WM,以便能使得WM與電腦操作系統(tǒng)一模一樣。WM的應(yīng)用軟件以Microsoft Win32 API為
63、基礎(chǔ)。WM的應(yīng)用軟件以Microsoft Win32 API為基礎(chǔ)。</p><p> 2.3.2 Visual Stdio與移動(dòng)智能設(shè)備開發(fā)的結(jié)合</p><p> Visual Studio 為開發(fā)在基于 Windows Mobile的智能設(shè)備上運(yùn)行的軟件提供了豐富的集成化支持。可以使用 Visual C# 或 Visual Basic 編寫在 .NET Compact Frame
64、work 上運(yùn)行的托管應(yīng)用程序,也可以使用 Visual C++ 編寫本機(jī)應(yīng)用程序。無論選擇何種語言,開發(fā)者都將使用開發(fā)桌面應(yīng)用程序時(shí)所使用的相同代碼編輯器、設(shè)計(jì)器和調(diào)試器界面。只要選擇一種可供所選語言使用的智能設(shè)備項(xiàng)目模板,然后開始編寫代碼即可。Visual Studio 提供了用于在開發(fā)計(jì)算機(jī)上運(yùn)行和調(diào)試代碼的仿真程序。此外,Visual Studio 還提供了相應(yīng)的工具,用于簡化將應(yīng)用程序及其資源打包到 CAB 文件中以便部署到最
65、終用戶設(shè)備的工作。</p><p> 2.4地理信息系統(tǒng)算法</p><p> 算法是指完成一個(gè)任務(wù)所需要的具體的步驟和方法。算法是計(jì)算機(jī)處理信息的本質(zhì),告訴計(jì)算機(jī)以確切的步驟來執(zhí)行一個(gè)指定的任務(wù)。隨著地理信息系統(tǒng)在各個(gè)領(lǐng)域中更為廣泛的應(yīng)用,對(duì)GIS算法的研究變得日益重要。GIS算法作為處理地理科學(xué)領(lǐng)域中各種問題的分析求解方法,有著鮮明的特點(diǎn)。首先,雖然GIS算法用來解決地學(xué)領(lǐng)域的問題
66、的,但許多算法都不是孤立存在的,而是借鑒和發(fā)展了其他學(xué)科的研究成果;其次,GIS算法處理的往往是海量的地理信息,涉及許多復(fù)雜的空間運(yùn)算,不同于簡單的數(shù)據(jù)查詢、編輯操作;再次,地理信息系統(tǒng)與實(shí)際應(yīng)用、工程開發(fā)有著密切的關(guān)系,GIS算法與一般算法很重要的一個(gè)區(qū)別就是處理問題的不確定性,它無法被定性、定量成一個(gè)非常明確的純算法問題[]。</p><p> 2.4.1地理信息系統(tǒng)基本算法</p><
67、p> 地理信息系統(tǒng)主要算法有:空間數(shù)據(jù)的變換算法、空間數(shù)據(jù)的轉(zhuǎn)換算法、空間數(shù)據(jù)的組織算法、空間數(shù)據(jù)的索引算法、空間數(shù)據(jù)的內(nèi)插算法、空間度量算法、緩沖區(qū)分析算法、網(wǎng)格分析算法、地形分析算法、空間數(shù)據(jù)挖掘算法等。</p><p> 2.4.2平面數(shù)據(jù)的變換算法</p><p> 平面數(shù)據(jù)的變換算法是建立在直角坐標(biāo)系的基礎(chǔ)上,以平面上一點(diǎn)O為直角坐標(biāo)原點(diǎn),過O作相互垂直的兩軸x
68、9;Ox和y'Oy而建立平面直角坐標(biāo)系,規(guī)定Ox、Oy為正方向,Ox'、Oy'為負(fù)方向,因此在坐標(biāo)系中一個(gè)已知點(diǎn)P,它的位置便可由該點(diǎn)對(duì)Ox與Oy軸垂線長度唯一的確定,即x=AP,y=BP通常記為P(x,y)。</p><p> 建立平面坐標(biāo)變換矩陣:</p><p> T= (2-1)</p><p
69、> 變換功能上可把T分成四個(gè)矩陣,是對(duì)圖形進(jìn)行縮放、旋轉(zhuǎn)、對(duì)稱、錯(cuò)切等變換;是對(duì)圖形進(jìn)行平移變換;是對(duì)圖形做投影變換,g的作用是在x軸的1/g處產(chǎn)生一個(gè)滅點(diǎn);h的作用是在y軸的1/h處產(chǎn)生一個(gè)滅點(diǎn);是對(duì)整體圖形做伸縮變換。</p><p> T為單位矩陣即定義二維空間中直角坐標(biāo)系,此時(shí)T可看做3個(gè)行矢量,其中表示x軸上無窮遠(yuǎn)點(diǎn),表示y軸上無窮遠(yuǎn)點(diǎn),表示坐標(biāo)原點(diǎn)。</p><p>
70、 設(shè)待求點(diǎn)P'的坐標(biāo)為(x',y'),OP、OP'在平面坐標(biāo)系下的向量表示為、。變換可以表示為OP'=OP×T,即:</p><p> =× (2-2)</p><p> 2.4.3路徑分析算法</p><p> 路徑分析是GIS中最基本的功能,其核心是對(duì)最佳路徑和最短路徑的
71、求解。從網(wǎng)絡(luò)模型的角度看,最佳路徑求解就是在指定網(wǎng)絡(luò)中兩節(jié)點(diǎn)間找一條阻礙強(qiáng)度最小的路徑。最佳路徑的產(chǎn)生基于網(wǎng)線和截點(diǎn)轉(zhuǎn)角的阻礙強(qiáng)度。比如,如果要找最快的路徑,阻礙強(qiáng)度要預(yù)先設(shè)定為通過網(wǎng)線或在結(jié)點(diǎn)處轉(zhuǎn)彎所花的時(shí)間;如果要找費(fèi)用最小的路徑,阻礙強(qiáng)度就應(yīng)該是費(fèi)用。當(dāng)網(wǎng)線在順逆兩個(gè)方向上的阻礙強(qiáng)度都是該網(wǎng)線的長度,而結(jié)點(diǎn)無轉(zhuǎn)角數(shù)據(jù)或轉(zhuǎn)角數(shù)據(jù)都是零時(shí),最佳路徑就變成了最短路徑。</p><p> 另一種路徑分析功能是最佳
72、游歷方案的求解、網(wǎng)線最佳游歷方案求解,是給定一個(gè)網(wǎng)線集合和一個(gè)結(jié)點(diǎn),求最佳路徑,使之由指定結(jié)點(diǎn)出發(fā)至少經(jīng)過每條網(wǎng)線一次而回到起始結(jié)點(diǎn)。結(jié)點(diǎn)最佳方案求解,則是給定一個(gè)起始結(jié)點(diǎn)、一個(gè)終止結(jié)點(diǎn)和若干中間結(jié)點(diǎn),求解最佳路徑,使之由起點(diǎn)出發(fā)遍歷全部中間結(jié)點(diǎn)而達(dá)終點(diǎn)。</p><p> 路徑分析的主要方向有:</p><p> 靜態(tài)求最佳路徑:由用戶確定權(quán)值關(guān)系后,即給定每條弧段的屬性,當(dāng)需求最佳
73、路徑時(shí),讀出路徑的相關(guān)屬性,求最佳路徑;</p><p> 動(dòng)態(tài)分析技術(shù):給定一條路徑由多段聯(lián)系組成,要求標(biāo)注出這條路上的千米點(diǎn)或要求定位某一公路上的某一點(diǎn),標(biāo)注出某條路上從某一千米數(shù)到另一千米數(shù)的路段;</p><p> N條最佳路徑分析:確定起點(diǎn)、終點(diǎn),求代價(jià)較小的幾條路徑,因?yàn)樵趯?shí)踐中往往僅求出最佳路徑并不能滿足要求,可能因?yàn)槟撤N因素不走最佳路徑,而走近似最佳路徑;</p&
74、gt;<p> 最短路徑:確定起點(diǎn)、終點(diǎn)和所要經(jīng)過的中間點(diǎn)、中間連線,求最短路徑;</p><p> 動(dòng)態(tài)最短路徑分析:實(shí)際網(wǎng)絡(luò)分析中權(quán)值是隨著權(quán)值關(guān)系式變化的,而且可能會(huì)臨時(shí)出現(xiàn)一些障礙點(diǎn),所以往往需要?jiǎng)討B(tài)地計(jì)算最佳路徑。</p><p> 2.5 數(shù)據(jù)的采集和輸入</p><p> 數(shù)據(jù)的采集和輸入主要是用ArcGIS 9.3對(duì)原有地圖進(jìn)行
75、數(shù)字化完成的,數(shù)字化的結(jié)果以.shp格式的數(shù)據(jù)輸出,被本系統(tǒng)接收進(jìn)行展示。</p><p> 以教學(xué)樓的數(shù)據(jù)采集為例,首先我們從學(xué)校相關(guān)部門獲得了浦苑教學(xué)樓的柵格影像數(shù)據(jù)。</p><p> 圖2.2 浦苑教學(xué)樓的柵格影像數(shù)據(jù)</p><p> Fig 2.2 Raster data of Puyuan Teaching Building</p>
76、<p> 第一步 對(duì)柵格影像添加投影(地理)坐標(biāo)系統(tǒng)。利用ArcCatalog,找到柵格文件,從屬性選項(xiàng)中選擇Spatial Reference下的edit按鈕,點(diǎn)擊Select,選擇Geographic Coordinate Systems下的World中的WGS 1984坐標(biāo)系。</p><p> 圖2.3 選擇坐標(biāo)系</p><p> Fig 2.3 Choose
77、Coordinate System</p><p> 第二步 新建矢量文件(shapefile)。利用ArcCatalog,在指定文件夾里,選擇Contents,在空白處右鍵,從彈出的對(duì)話框中選擇New,選擇Shapefile命名為“教學(xué)樓”,格式是Polygon,添加和第一步相同的地理坐標(biāo)系。</p><p> 圖2.4 新建Shpfile文件</p><p>
78、; Fig 2.4 New shapefile</p><p> 第三步 添加到ArcMap。將柵格文件和.shp文件添加到ArcMap的工程中,拖動(dòng)文件將.shp文件疊與柵格文件上方。</p><p> 圖2.5 添加到ArcMap</p><p> Fig 2.5 Add to ArcMap</p><p> 第四步 進(jìn)行數(shù)字化
79、。點(diǎn)擊Editor工具條的下拉菜單,選擇Start Editing,點(diǎn)擊右側(cè)的畫筆按鈕,從右側(cè)的Target下拉列表中選擇“教學(xué)樓”。在相應(yīng)區(qū)域進(jìn)行數(shù)字化,雙擊結(jié)束數(shù)字化。</p><p> 圖2.6 進(jìn)行數(shù)字化</p><p> Fig 2.6 Process in digitization</p><p> 第五步 檢查。全部數(shù)字化完成后,檢查是否有區(qū)域存
80、在漏畫、錯(cuò)畫等情況,如有進(jìn)行改正。</p><p> 第六步 保存。點(diǎn)擊File下的Save進(jìn)行文件的保存。</p><p> 圖2.7 數(shù)字化結(jié)果</p><p> Fig 2.7 Result of digitization</p><p> 第三章 校園智能助手的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 3.1校園
81、智能助手介紹</p><p> 3.1.1校園智能助手的概念</p><p> 校園智能助手是以高校校園地理信息為主要管理內(nèi)容,并與其他校園學(xué)習(xí)、生活信息相結(jié)合的綜合性軟件系統(tǒng)。校園地理信息是校園管理的重要資源之一,利用地理信息系統(tǒng)對(duì)地理坐標(biāo)和空間位置的表示能力,我們可以將學(xué)校的教學(xué)樓及各個(gè)重要設(shè)施的分布情況與其相關(guān)屬性數(shù)據(jù)結(jié)合起來,并實(shí)現(xiàn)地圖的尋路及相關(guān)屬性的查詢,使學(xué)校的領(lǐng)導(dǎo)、教職
82、工和廣大的同學(xué)可方便的了解學(xué)校的有關(guān)信息。而且,利用最新的軟件技術(shù)如多媒體技術(shù)、軟件復(fù)用技術(shù),我們可以進(jìn)一步拓展校園智能助手的功能,使之具有多媒體功能、鏈接與嵌入功能(OLE)等[]。簡而言之,校園智能助手可以將地圖、圖形、多媒體信息如和屬性資料有機(jī)的結(jié)合起來進(jìn)行綜合管理,以清楚明了的方式展現(xiàn)給使用者,不但加深了使用者對(duì)校園的了解,更通過從系統(tǒng)中獲得的有效信息,合理的安排自己的校園生活,充實(shí)的過好每一天的大學(xué)生活。</p>
83、<p> 3.1.2 校園智能助手的特征</p><p> 校園智能助手應(yīng)具有如下特征:</p><p> 1.提供校園各個(gè)地點(diǎn)詳細(xì)位置及營業(yè)或運(yùn)作時(shí)間。主要地點(diǎn)及教學(xué)樓內(nèi)部教室的尋路查詢。</p><p> 2.提供自習(xí)教室查詢和全校的課程詳表,自動(dòng)加載你已選課程,參與課程討論區(qū)、管理該課程的作業(yè)安排??商砑悠渌n程到你的“旁聽計(jì)劃”。<
84、/p><p> 3.校內(nèi)主要商鋪商品信息的查詢及優(yōu)惠信息的發(fā)布。</p><p> 3.1.3 校園智能助手的軟硬件組成</p><p> 本系統(tǒng)的一個(gè)設(shè)計(jì)目的就是為了讓更多的用戶可以在低配置情況下使用本系統(tǒng)。經(jīng)過代碼優(yōu)化、內(nèi)存分配優(yōu)化及顯示優(yōu)化設(shè)計(jì),該軟件經(jīng)測(cè)試可在Windows NT、Windows 2003、Windows XP、Windows Vista和
85、Windows 7等操作系統(tǒng)環(huán)境下運(yùn)行,并能滿足較低硬件配置的要求,免去用戶升級(jí)硬件的煩惱。具體硬件要求如下:</p><p> 表3.1 PC校園智能助手硬件環(huán)境</p><p> Table 3.1 Hardware environment of Campus Intelligent Assistant </p><p> 表3.2 智能手機(jī)運(yùn)行環(huán)境<
86、;/p><p> Table 3.2 Operating environment of smartphone</p><p> 3.2 PC平臺(tái)的校園智能助手的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 3.2.1 PC平臺(tái)系統(tǒng)整體設(shè)計(jì)</p><p> PC平臺(tái)因?yàn)橛兄^好的處理器和顯示設(shè)備,有利于數(shù)據(jù)的維護(hù)更新,同時(shí)也能較好的保護(hù)數(shù)據(jù)不被惡意篡改及
87、攻擊。因此適合在此平臺(tái)上進(jìn)行較多功能的實(shí)現(xiàn)。</p><p> 圖3.1 系統(tǒng)總體設(shè)計(jì)</p><p> Fig 3.1 General system-design</p><p> 總的來說,PC平臺(tái)的系統(tǒng)主要是是接受用戶的需求,調(diào)用相應(yīng)的模塊進(jìn)行處理,再將處理后的結(jié)果反饋給用戶[]。</p><p> 本系統(tǒng)PC部分分為三個(gè)主要功
88、能模塊。</p><p> 第一模塊(SHP模塊):地圖的基本操作功能</p><p> 該模塊主要負(fù)責(zé)shape files格式數(shù)據(jù)的讀取,并可以對(duì)讀取的視圖對(duì)象進(jìn)行放大、縮小、漫游、全局視圖等操作。</p><p> 第二模塊(校園應(yīng)用模塊):提供學(xué)校主要建筑物情況</p><p> 該模塊主要負(fù)責(zé)介紹校園情況,在校園衛(wèi)星影像圖上
89、點(diǎn)擊相應(yīng)的地點(diǎn)可從彈出的對(duì)話框中了解到對(duì)應(yīng)建筑物的信息。</p><p> 第三模塊(尋路視圖模塊):2.5D教學(xué)樓導(dǎo)航和陽光教室查詢與管理功能</p><p> 該模塊主要負(fù)責(zé)教學(xué)樓內(nèi)的尋路,以及陽光教室信息的查詢、管理。如果用戶對(duì)該區(qū)路徑不熟悉,可以通過路徑檢索,系統(tǒng)會(huì)為其設(shè)計(jì)一條最優(yōu)路徑。如果用戶需要尋找陽光教室(即自習(xí)教室),則系統(tǒng)會(huì)根據(jù)用戶選擇的條件進(jìn)行篩選,最終將滿足條件的
90、教室顯示,以供用戶選擇。</p><p> 3.2.2 PC平臺(tái)系統(tǒng)功能設(shè)計(jì)</p><p> 圖3.2 系統(tǒng)功能模塊設(shè)計(jì)</p><p> Fig 3.2 System function module design</p><p> 數(shù)據(jù)輸入:shapefile格式的讀取及顯示,2D圖像到2.5D圖像的投影轉(zhuǎn)變。</p>
91、<p> 條件查詢:陽光教室的查詢與管理功能、校園建筑物信息查詢功能。</p><p> 尋路導(dǎo)航:2.5D教學(xué)樓導(dǎo)航功能。</p><p> 功能上,讀取shapefile用于顯示教學(xué)樓整體結(jié)構(gòu)圖,一目了然。條件查詢及檢索作用使得學(xué)校建筑物情況及自習(xí)教室的查詢作用發(fā)揮到了極致,為日常自習(xí)上課帶來了便利。尋路導(dǎo)航,不僅可以在同一層面中進(jìn)行尋路導(dǎo)航,還可以實(shí)現(xiàn)跨層式導(dǎo)航。
92、各個(gè)作用之間相互影響,相輔相成,彼此相協(xié)調(diào)。</p><p> 1、基本地圖操作功能</p><p> ?。?)基于底層開發(fā)的地圖基本操作</p><p> 基于二次開發(fā)的地圖視圖操作功能只需使用系統(tǒng)已有控件,再調(diào)用相應(yīng)函數(shù)進(jìn)行關(guān)聯(lián)即可實(shí)現(xiàn)。相較二次開發(fā),基于底層開發(fā)的地圖視圖操作的實(shí)現(xiàn)較為復(fù)雜,沒有系統(tǒng)自帶控件,需要自行獨(dú)立編程開發(fā),利用獲取當(dāng)前視圖范圍大小,
93、圖形坐標(biāo)位置改變,橫縱比例等的轉(zhuǎn)變而實(shí)現(xiàn)。雖然實(shí)現(xiàn)過程復(fù)雜,但是其靈活度較大,讓編程開發(fā)者擁有更為廣闊的發(fā)展空間。</p><p><b> I、放大縮小功能</b></p><p> MFC中對(duì)視圖對(duì)象進(jìn)行放大的原理有很多,該軟件采用的是點(diǎn)擊放大的辦法,通過改變視圖比例尺來進(jìn)行視圖范圍的改變,在這種放大方式下,用鼠標(biāo)點(diǎn)中圖中的一個(gè)點(diǎn),系統(tǒng)會(huì)計(jì)算放大窗口屏幕坐標(biāo)會(huì)
94、把圖形放大一個(gè)固定的比例,鼠標(biāo)按中點(diǎn)處于放大后的圖形屏幕的中心,具體代碼參見CMyMapView類中的ZoomIn函數(shù)。</p><p> void CMyMapView::ZoomIn()</p><p><b> {</b></p><p> double dblX,dblY;</p><p> CMyPoi
95、nt pt,ptCenter;</p><p> //移動(dòng)鼠標(biāo)點(diǎn)擊點(diǎn)到屏幕中心</p><p> dblX=(m_StartPt.x-m_DrawParam.m_ScreenWidth/2)*m_DrawParam.m_Scale; dblY=(m_StartPt.y-m_DrawParam.m_ScreenHeigh/2) *m_DrawParam.m_Scale;</p&g
96、t;<p> m_DrawParam.m_StartX+ dblX;</p><p> m_DrawParam.m_StartY-=dblY;</p><p> //計(jì)算放大窗口屏幕坐標(biāo)</p><p> m_StartPt.x=m_DrawParam.m_ScreenWidth/2-m_DrawParam.m_ScreenWidth /(
97、2*m_FixedScale);</p><p> m_StartPt.y = m_DrawParam.m_ScreenHeigh/2- m_DrawParam.m_ScreenHeigh/(2*m_FixedScale);</p><p> m_SecondPt.x=m_DrawParam.m_ScreenWidth/2+m_DrawParam.m_ScreenWid
98、th /(2*m_FixedScale);</p><p> m_SecondPt.y=m_DrawParam.m_ScreenHeigh/2+ZoomInWindows(); </p><p><b> }</b></p><p> 對(duì)視圖對(duì)象縮小的原理也類似,同樣采用點(diǎn)擊縮小的方式,用鼠標(biāo)點(diǎn)中圖中的一個(gè)點(diǎn),系統(tǒng)會(huì)去獲取當(dāng)前地圖最大
99、矩形范圍,然后把圖形縮小一定比例,鼠標(biāo)按中點(diǎn)同樣處于縮小后的圖形屏幕中心,具體代碼參見CMyMapView類中的ZoomOut函數(shù)。</p><p> void CMyMapView::ZoomOut()</p><p><b> {</b></p><p> double dblX,dblY,dblXScale,dblYScale;&l
100、t;/p><p> CMyPoint pt,ptCenter;</p><p> CMyPoint ptFirst,ptSecond;</p><p> CMapRectangle mapExtent;</p><p> CMyMapDoc* pDoc = GetDocument();</p><p> ASSE
101、RT_VALID(pDoc);</p><p> //獲得當(dāng)前地圖最大矩形范圍</p><p> pDoc->m_MapLayers.GetAllExtent(mapExtent);</p><p> dblXScale = m_DrawParam.m_Scale+ (mapExtent.GetWidth()/m_FixedScale)
102、/m_DrawParam.m_ScreenWidth;</p><p> dblYScale = m_DrawParam.m_Scale + (mapExtent.GetHeight()/m_FixedScale)/m_DrawParam.m_ScreenHeigh; </p><p> if ( dblXScale < dblYScale )</p
103、><p><b> { </b></p><p> m_DrawParam.m_StartX -=(dblXScale-m_DrawParam.m_Scale)*m_DrawParam.m_ScreenWidth/2;</p><p> m_DrawParam.m_StartY += (dblXScale-
104、m_DrawParam.m_Scale)*m_DrawParam.m_ScreenHeigh/2;</p><p> m_DrawParam.m_Scale = (float)dblXScale;</p><p><b> }</b></p><p><b> else</b></p>
105、<p><b> { </b></p><p> m_DrawParam.m_StartX -=(dblYScale - m_DrawParam.m_Scale)*m_DrawParam.m_ScreenWidth/2;</p><p> m_DrawParam.m_StartY += (dblYScale -
106、m_DrawParam.m_Scale)*m_DrawParam.m_ScreenHeigh/2;</p><p> m_DrawParam.m_Scale = (float)dblYScale;</p><p><b> }</b></p><p> //移動(dòng)鼠標(biāo)點(diǎn)擊點(diǎn)到屏幕中心 </p><p> d
107、blX= (m_StartPt.x - m_DrawParam.m_ScreenWidth /2)*m_DrawParam.m_Scale; dblY=(m_StartPt.y - m_DrawParam.m_ScreenHeigh/2) *m_DrawParam.m_Scale;</p><p> m_DrawParam.m_StartX += dblX;</p><p> m_D
108、rawParam.m_StartY -= dblY;</p><p> Invalidate(TRUE);</p><p><b> }</b></p><p><b> II、漫游功能</b></p><p> 對(duì)視圖對(duì)象進(jìn)行漫游,原理如下,當(dāng)鼠標(biāo)點(diǎn)中屏幕進(jìn)行拖動(dòng)時(shí),原來位于左上角的坐標(biāo)系
109、原點(diǎn)也發(fā)生了相應(yīng)的移動(dòng),坐標(biāo)系中的其他點(diǎn)也同時(shí)移動(dòng),從而達(dá)到對(duì)象平移的目的,具體代碼參見CMyMapView類中的Pan函數(shù)。</p><p> void CMyMapView::Pan()</p><p><b> {</b></p><p> double dblX,dblY;</p><p> CMyPoi
110、nt ptFirst,ptSecond;</p><p><b> CRect rc;</b></p><p> dblX = m_DrawParam.m_StartX + m_StartPt.x*m_DrawParam.m_Scale; </p><p> dblY = m_DrawParam.m_StartY - m_StartP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 地理信息系統(tǒng)畢業(yè)論文基于android的校園信息助手設(shè)計(jì)與實(shí)現(xiàn)
- 基于MapObjects的校園地理信息系統(tǒng)的研究與開發(fā).pdf
- 地理信息系統(tǒng)
- 基于WEBGIS的校園地理信息系統(tǒng)研制.pdf
- 地理信息系統(tǒng)設(shè)計(jì)與開發(fā)
- 基于ArcIMS的校園地理信息系統(tǒng)研究與開發(fā).pdf
- 城市路燈地理信息系統(tǒng)的開發(fā).pdf
- 地理信息系統(tǒng)結(jié)課論文
- 基于MapX的校園地理信息系統(tǒng)集成.pdf
- 銀行地理信息系統(tǒng)設(shè)計(jì)開發(fā).pdf
- 地理信息系統(tǒng)試題
- 地理信息系統(tǒng)初探
- 智能交通中地理信息系統(tǒng)的研究.pdf
- 地理信息系統(tǒng)2008
- 地理信息系統(tǒng)試題
- 淺議地理信息系統(tǒng)
- 地理信息系統(tǒng)答案
- 地球地理信息系統(tǒng)
- 基于地理信息系統(tǒng)的智能城市電網(wǎng)規(guī)劃.pdf
- 基于mapx的城市消防地理信息系統(tǒng)開發(fā)
評(píng)論
0/150
提交評(píng)論