地理信息系統(tǒng)畢業(yè)論文_第1頁
地理信息系統(tǒng)畢業(yè)論文_第2頁
地理信息系統(tǒng)畢業(yè)論文_第3頁
地理信息系統(tǒng)畢業(yè)論文_第4頁
地理信息系統(tǒng)畢業(yè)論文_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、地理信息系統(tǒng)畢業(yè)論文題目:基于Gis的火車換乘系統(tǒng)專 業(yè):地理信息系統(tǒng) 摘要自中國改革開放以來我國經(jīng)濟(jì)取得了長足的進(jìn)步,為了適應(yīng)國家經(jīng)濟(jì)的快速發(fā)展,我國正在大力進(jìn)行鐵路建設(shè)。然而隨著我國鐵路的快速發(fā)展給我們出行帶來了無限便利的同時,我們在選擇出行路線的時候也面臨著很多困難,是選擇最快的呢?還是選擇最舒適,經(jīng)濟(jì)的呢?面對這樣的問題本系統(tǒng)給出了很好的解決辦法,幫助用戶選擇更為合適的出行方案。系統(tǒng)采用ArcEngine在JAVA環(huán)境下實現(xiàn),所用平臺為Eclipse。在本系統(tǒng)當(dāng)中,用戶可以可視化的了解所關(guān)注車次、車站的詳細(xì)信息。本論文結(jié)合開發(fā)軟件的全過程,先介紹系統(tǒng)開發(fā)的背景環(huán)境;接著對數(shù)據(jù)的來源和建

2、立進(jìn)行論述包括基礎(chǔ)數(shù)據(jù)的創(chuàng)建和網(wǎng)絡(luò)數(shù)據(jù)的創(chuàng)建以及數(shù)據(jù)庫的設(shè)計和建立;然后詳細(xì)描述了軟件的實現(xiàn)思路、軟件的層次結(jié)構(gòu)設(shè)計、功能模塊設(shè)計、以及如何實現(xiàn)、組織各個功能模塊 ;最后附上實現(xiàn)各個功能模塊的主要代碼?!娟P(guān)鍵字】ArcEngine、JAVA、火車換乘AbstractSince China's reform and opening up of China's economic progress, in order to meet the country's rapid economic development, China vigorously for railway c

3、onstruction. With the rapid development of China's railway to our unlimited travel convenience at the same time, we select travel routes are faced with many difficulties, is to choose the fastest?, or choose the most comfortable, affordable? in the face of such problems this system gives very go

4、od solutions, help users choose more appropriate travel scheme. The system uses the ArcEngine in a Java environment, platform for Eclipse. In this system, users can visually understand concerns train, station details. This paper combined with the whole process of developing software, first system de

5、velopment background environment; then on the data source and establish are discussed in the basic data creation and the creation of the network data, and database design and set up; and a detailed description of the software implementation ideas, software design, the hierarchy of functionality to d

6、esign, implement, organize function module; last accompanied by implementation of the various modules of the main code. key words ArcEngine、JAVA、Train Transfer目 錄1緒論61.1引言61.2 設(shè)計論文背景61.3 火車換乘系統(tǒng)的意義61.4 火車換乘系統(tǒng)的關(guān)鍵技術(shù)71.4.1 GIS技術(shù)71.4.2組件式GIS71.4.3數(shù)據(jù)庫技術(shù)81.5系統(tǒng)開發(fā)中解決的問題81.6系統(tǒng)開發(fā)的主要路線81.7論文主要的研究內(nèi)容92基礎(chǔ)數(shù)據(jù)的處理流程92

7、.1數(shù)據(jù)來源92.2網(wǎng)絡(luò)數(shù)據(jù)集的建立92.2.1基礎(chǔ)圖層92.2.2 創(chuàng)建網(wǎng)絡(luò)數(shù)據(jù)集112.2.3校驗網(wǎng)絡(luò)數(shù)據(jù)集的可用性142.4本章總結(jié)153 火車換乘系統(tǒng)的設(shè)計163.1 系統(tǒng)開發(fā)平臺設(shè)計163.1.1 GIS系統(tǒng)平臺163.1.2系統(tǒng)開發(fā)語言163.1.3數(shù)據(jù)庫平臺173.1.4系統(tǒng)運(yùn)行平臺173.2系統(tǒng)數(shù)據(jù)層次結(jié)構(gòu)搭建173.2.1系統(tǒng)結(jié)構(gòu)173.2.2系統(tǒng)空間數(shù)據(jù)173.2.3系統(tǒng)屬性數(shù)據(jù)183.3系統(tǒng)的組織結(jié)構(gòu)與實現(xiàn)思路193.4本章總結(jié)214 火車換乘系統(tǒng)的實現(xiàn)224.1系統(tǒng)概述224.2系統(tǒng)界面224.3功能模塊論述234.3.1車次查詢234.3.2車站查詢244.3.3按路

8、徑查詢244.3.4高級274.3.5 地圖工具284.4本章總結(jié)305總結(jié)與展望315.1論文研究成果315.2 論文的不足及進(jìn)一步工作展望31致 謝32參考文獻(xiàn)33附 錄(一) 主要程序代碼34u 1緒論l 1.1引言鐵路建設(shè)的積極推進(jìn),更多的火車車次和鐵路運(yùn)輸線投入到使用當(dāng)中。而且隨著現(xiàn)代化工業(yè)發(fā)展的有力步伐,也涌現(xiàn)出了很多不同種類的火車出行方式。最近的高速鐵路、省會直達(dá)都是令人振奮的消息,這樣我們出行就有了更多的選擇方式,而這僅僅是針對我們的火車。這就為出行者帶來了一定的困擾尤其是在像鄭州、北京、上海等城市有眾多的鐵路線在這里交匯,從出發(fā)點可以到達(dá)目的地的火車有十幾條之多,然而如何能在

9、有限的時間內(nèi)選擇出我們最佳的出行路線呢?現(xiàn)在是信息化時代,在多源化的鐵路信息中我們?nèi)绾稳フ纤麄儾⒂行У丶右越M織利用成了關(guān)鍵性的問題。而隨著GIS的發(fā)展將GIS運(yùn)用到火車出行系統(tǒng)當(dāng)中,更能解決很多的出行選擇難題。同時能夠有效地組織各種信息數(shù)據(jù),使它真正能夠為我們出行服務(wù)。l 1.2 設(shè)計論文背景目前很多有很多的火車查詢軟件包括網(wǎng)絡(luò)上的,然而其中的大部分都只是簡單的時間數(shù)據(jù)庫查詢,就是簡單的火車時刻表的查詢。對于很多用戶在日常生活中遇到的問題不能很好的解決,更不能實現(xiàn)火車的換乘查詢,也不能將火車信息可視化的顯示在地圖當(dāng)中。這就嚴(yán)重的影響了用戶使用軟件的效果。例如某個火車查詢網(wǎng)站提供給用戶三種火車

10、查詢的方法車站查詢、車次查詢、出發(fā)地目的地查詢這三種查詢方式。每次的查詢都是只將基本的火車信息全部羅列在用戶面前,而太多的數(shù)據(jù)并不是用戶關(guān)心的數(shù)據(jù),并且系統(tǒng)也沒有給用戶提供自定義查詢的接口從而縮小查詢的范圍使用戶更容易的得到所關(guān)心的數(shù)據(jù)。并且由于種種限制也不能將有效的數(shù)據(jù)實時的以可視化的方式呈現(xiàn)在用戶面前,使用戶在查詢時還要逐一篩選。這只是其中的一個問題,而本系統(tǒng)將會一一解決這樣的問題。l 1.3 火車換乘系統(tǒng)的意義火車出行是一個十分重要的問題,如果沒有選擇合理的出行路線方案,不但可能給出行者帶來不便,也可能由于大量出行人員由于沒有合理的選擇出行路線而造成火車的某一車次運(yùn)力壓力過大等種種情況而

11、這都是需要我們加以重視的。面對用戶存在種種困惑,本系統(tǒng)將以更加人性化的方式、更直觀的方式式將用戶所關(guān)心的問題逐一解決。l 1.4 火車換乘系統(tǒng)的關(guān)鍵技術(shù)n 1.4.1 GIS技術(shù)地理信息系統(tǒng)( Geographic Information System, 簡稱 GIS )作為獲取、存儲、分析和管理地理空間數(shù)據(jù)的重要工具、技術(shù)和學(xué)科,近年來得到了廣泛關(guān)注和迅猛發(fā)展。由于信息技術(shù)的發(fā)展,數(shù)字時代的來臨,理論上來說,GIS可以運(yùn)用于現(xiàn)階段任何行業(yè)。GIS經(jīng)過了40年的發(fā)展,到今天已經(jīng)逐漸成為一門相當(dāng)成熟的技術(shù),并且得到了極廣泛的應(yīng)用。尤其是近些年,GIS更以其強(qiáng)大的地理信息空間分析功能,在GPS及路

12、徑優(yōu)化中發(fā)揮著越來越重要的作用。GIS地理信息系統(tǒng)是以地理空間數(shù)據(jù)庫為基礎(chǔ),在計算機(jī)軟硬件的支持下,運(yùn)用系統(tǒng)工程和信息科學(xué)的理論,科學(xué)管理和綜合分析具有空間內(nèi)涵的地理數(shù)據(jù),以提供管理、決策等所需信息的技術(shù)系統(tǒng)。簡單的說,地理信息系統(tǒng)就是綜合處理和分析地理空間數(shù)據(jù)的一種技術(shù)系統(tǒng)。n 1.4.2組件式GIS組件式GIS是面向?qū)ο蠹夹g(shù)和組件技術(shù)在GIS軟件技術(shù)開發(fā)中的應(yīng)用。組件式GIS控件與其他軟件通過標(biāo)準(zhǔn)接口進(jìn)行通信,實現(xiàn)跨程序、跨計算機(jī)、跨網(wǎng)絡(luò)的分布式操作。同傳統(tǒng)的GIS相比較,它具有多方面的特點,包括:無縫集成、跨語言使用、易于推廣、開發(fā)簡捷、使用方便、成本低、可視化界面設(shè)計以及Interne

13、t應(yīng)用等。組件式GIS的基本思想是把GIS的各大功能模塊劃分為幾個控件,每個控件完成不同的功能。各個GIS控件之間,以及GIS控件與其它非GIS控件之間,可以方便地通過可視化的軟件開發(fā)工具集成起來,形成最終的GIS應(yīng)用6。控件如同一堆各式各樣的積木,他們分別實現(xiàn)不同的功能(包括GIS和非GIS功能),根據(jù)需要把實現(xiàn)各種功能的 “積木”搭建起來,就構(gòu)成應(yīng)用系統(tǒng)。n 1.4.3數(shù)據(jù)庫技術(shù)本系統(tǒng)使用Access數(shù)據(jù)路軟件,Access 是微軟公司推出的基于Windows的桌面關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS,即Relational Database Management System),是Office

14、系列應(yīng)用軟件之一。它提供了表、查詢、窗體、報表、頁、宏、模塊7種用來建立數(shù)據(jù)庫系統(tǒng)的對象;提供了多種向?qū)?、生成器、模板,把?shù)據(jù)存儲、數(shù)據(jù)查詢、界面設(shè)計、報表生成等操作規(guī)范化;為建立功能完善的數(shù)據(jù)庫管理系統(tǒng)提供了方便,也使得普通用戶不必編寫代碼,就可以完成大部分?jǐn)?shù)據(jù)管理的任務(wù)。Access管理的對象有表、查詢、窗體、報表、頁、宏和模塊,以上對象都存放在后綴為(.mdb)的數(shù)據(jù)庫文件中,便于用戶的操作和管理。Access是一個面向?qū)ο蟮拈_發(fā)工具,利用面向?qū)ο蟮姆绞綄?shù)據(jù)庫系統(tǒng)中的各種功能對象化,將數(shù)據(jù)庫管理的各種功能封裝在各類對象中。它將一個應(yīng)用系統(tǒng)當(dāng)作是由一系列對象組成的,對每個對象它都定義一組

15、方法和屬性,以定義該對象的行為和外觀,用戶還可以按需要給對象擴(kuò)展方法和屬性。通過對象的方法、屬性完成數(shù)據(jù)庫的操作和管理,極大地簡化了用戶的開發(fā)工作。1.5系統(tǒng)開發(fā)中解決的問題本系統(tǒng)開發(fā)中主要解決一下幾個方面的問題1) 建立全國主要鐵路干線和主要地級市的網(wǎng)絡(luò)數(shù)據(jù)集。2) 實現(xiàn)基于網(wǎng)絡(luò)圖層和要素圖層模糊查詢、點選查詢以及數(shù)據(jù)庫的屬性查詢。3) 實現(xiàn)用戶的自定義查詢。4) 實現(xiàn)火車換乘查詢,地圖上實時動態(tài)顯示。l 1.6系統(tǒng)開發(fā)的主要路線本系統(tǒng)以全國的主要鐵路干線為研究對象,采用JAVA語言結(jié)合GIS二次開發(fā)平臺在GIS空間數(shù)據(jù)和Access屬性數(shù)據(jù)庫的基礎(chǔ)之上制作可視火車換乘系統(tǒng)。系統(tǒng)在JAVA環(huán)

16、境下引入AE類庫實現(xiàn)對AE類庫的調(diào)用,并通過JAVA的ODBC.JDBC實現(xiàn)對Access數(shù)據(jù)庫的操作,從而實現(xiàn)屬性數(shù)據(jù)和空間數(shù)據(jù)的聯(lián)動操作。從應(yīng)用程序的用戶接口得到關(guān)鍵信息,通過JAVA語言的處理將信息調(diào)入ArcEngine的類庫和Access數(shù)據(jù)庫進(jìn)行處理并將結(jié)果反饋到用戶界面,從而實現(xiàn)可視化的火車信息查詢、車站查詢和換乘查詢。對數(shù)據(jù)庫的更新功能主要是對Access數(shù)據(jù)庫的關(guān)于火車車次和站點的添加、編輯的操作。l 1.7論文主要的研究內(nèi)容本論文主要是對系統(tǒng)設(shè)計和建立整個過程的具體描述1) 闡述系統(tǒng)開發(fā)的主要背景和研究目的,以及系統(tǒng)能夠解決的問題和系統(tǒng)建立的思路。2) 闡述系統(tǒng)所涉及的基礎(chǔ)數(shù)

17、據(jù)、網(wǎng)絡(luò)數(shù)據(jù)和屬性數(shù)據(jù)的建立和組織的詳細(xì)過程。3) 對系統(tǒng)的各個功能模塊的簡單闡述。4) 闡述系統(tǒng)中存在的不足和缺點,同時也提出了解決方法和對未來的展望。5) 提供系統(tǒng)開發(fā)的主要代碼,以供以后的研究和使用。u 2基礎(chǔ)數(shù)據(jù)的處理流程l 2.1數(shù)據(jù)來源從國家地理信息系統(tǒng)數(shù)據(jù)網(wǎng)站上下載國家1:400萬主要的鐵路干線的基礎(chǔ)數(shù)據(jù)和省界數(shù)據(jù)以及主要地級市居民點數(shù)據(jù)shp格式。屬性數(shù)據(jù)主要通過上網(wǎng)查詢火車信息并手動錄入數(shù)據(jù)庫。l 2.2網(wǎng)絡(luò)數(shù)據(jù)集的建立n 2.2.1基礎(chǔ)圖層(1) 主要城市點居民點圖層、主要鐵路干線圖層、省界線圖層、省面圖層如圖2-1所示:圖2-1 鐵路網(wǎng)數(shù)據(jù)圖(2) 打開ArcMap,打開

18、工具箱,選擇Data ManageMent Tools選擇 Projections and Transformations 工具,轉(zhuǎn)換圖層的坐標(biāo)系統(tǒng),并統(tǒng)一為WGS1984投影坐標(biāo)系統(tǒng)單位為米如圖2-2所示圖2-2 基礎(chǔ)數(shù)據(jù)圖層坐標(biāo)系統(tǒng)n 2.2.2 創(chuàng)建網(wǎng)絡(luò)數(shù)據(jù)集在主要鐵路線和地級市居民點的基礎(chǔ)之上制作網(wǎng)絡(luò)數(shù)據(jù)集(1) 創(chuàng)建地籍?dāng)?shù)據(jù)庫1 打開Arccatalog在數(shù)據(jù)文件夾上單擊右鍵,新建personal Geodatabase 命名為railway,如圖2-3所示圖2-3 新建Geodatabase2 在railway數(shù)據(jù)庫上新建railway feature dataset,如圖2-3所

19、示圖2-3 新建FeatureDataset3 將主要鐵路線和地級市居民點導(dǎo)入到railway要素集當(dāng)中,選擇采用網(wǎng)絡(luò)數(shù)據(jù)集的方式建立拓?fù)渚W(wǎng)絡(luò),選擇railway要素數(shù)據(jù)集單擊右鍵創(chuàng)建Network dataset,如圖2-4所示:圖2-4 新建網(wǎng)絡(luò)數(shù)據(jù)集n 2.2.3校驗網(wǎng)絡(luò)數(shù)據(jù)集的可用性(1) 打開Arcmap,點擊菜單欄空白處選擇NetworkAnalyst工具條激活它,添加網(wǎng)絡(luò)數(shù)據(jù)集到Arcmap中如下圖2-5所示圖2-5 網(wǎng)絡(luò)數(shù)據(jù)集圖層(3)單擊NetworkAnalyst工具選擇New Route項,并在圖層列表中發(fā)現(xiàn)多出了RouteLayer圖層,單擊NetworkAnalyst

20、工具條中的工具選擇兩個位置進(jìn)行最短路徑查詢,單擊工具顯示最短路徑如圖2-6所示:圖2-6 測試網(wǎng)絡(luò)數(shù)據(jù)集l 2.4本章總結(jié)本章主要是描述在國家主要鐵路網(wǎng)的基礎(chǔ)之上進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)集的建立過程。先對收集到的數(shù)據(jù)進(jìn)行初期的編輯處理,然后針對國家主要鐵路干線圖層進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)集的建立和校驗,網(wǎng)絡(luò)數(shù)據(jù)集是本系統(tǒng)的實現(xiàn)基礎(chǔ)。u 3 火車換乘系統(tǒng)的設(shè)計GIS火車換乘系統(tǒng)的建立是主要根據(jù)系統(tǒng)功能模塊的設(shè)想,系統(tǒng)遵循如下的總體設(shè)計。系統(tǒng)具體要實現(xiàn)的功能,具體化為數(shù)據(jù)庫的查詢要求、地圖的可視化要求、模糊查詢、點選查詢要求、根據(jù)條件實現(xiàn)數(shù)據(jù)庫與地圖的可視化聯(lián)動要求、最短路徑查詢。l 3.1 系統(tǒng)開發(fā)平臺設(shè)計n 3.1.

21、1 GIS系統(tǒng)平臺Arcgis作為GIS軟件平臺行業(yè)的領(lǐng)跑者,以她強(qiáng)大的功能一直備受行業(yè)人士的青睞。GIS火車換乘系統(tǒng)采用Arcgis的輕量級開發(fā)組件Arcengine,在ArcGIS 9系列產(chǎn)品中,ArcGIS Desktop、ArcGIS Engine和ArcGIS Server都是基于核心組件庫ArcObjects搭建。 ArcObjects組件庫有3000多個對象可供開發(fā)人員調(diào)用,為開發(fā)人員集成了大量的GIS功能,可以快速的幫助開發(fā)人員進(jìn)行GIS項目的開發(fā)。ArcGIS Engine開發(fā)包提供了一系列可以在ArcGISDesktop框架之外使用的GIS組件,ArcGISEngine的出

22、現(xiàn)對于需要使用ArcObjects的開發(fā)人員來說是個福音,因為ArcGISEngine發(fā)布之前,基于ArcObjects的開發(fā)只能在龐大的ArcGIS Desktop框架下進(jìn)行。.ArcEngine包括核心ArcObjects的功能,是對AO中的大部分接口、類等進(jìn)行封裝所構(gòu)成的嵌入式組件。2.AE中的組件接口、方法、屬性與AO是相同的。ArcEngine具有簡潔、靈活、易用、可移植性強(qiáng)等的特點。n 3.1.2系統(tǒng)開發(fā)語言本系統(tǒng)采用Java語言進(jìn)行開發(fā),對于Java語言大家肯定最熟悉不過了。Java是一種簡單的,面向?qū)ο蟮?,分布式的,解釋型的,健壯安全的,結(jié)構(gòu)中立的,可移植的,性能優(yōu)異、多線程的

23、動態(tài)語言。Java語言的語法與C語言和C+語言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用Java。另一方面,Java丟棄了C+ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強(qiáng)制類型轉(zhuǎn)換。特別地,Java語言不使用指針,并提供了自動的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。Java語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現(xiàn)機(jī)制(關(guān)鍵字為implements)。Java語言全面支持動態(tài)綁定,而C+ 語言只對虛函數(shù)使用動態(tài)綁定??傊?,Java語言是一個純的面向?qū)ο蟪绦蛟O(shè)計語言。Java語言也完全支持

24、com組件機(jī)制,這就為和AE的結(jié)合打下了基礎(chǔ),ESRI公司推出的AE for JavaSDK 這使得在JAVA環(huán)境下的GIS二次開發(fā)更為簡單方便。n 3.1.3數(shù)據(jù)庫平臺Access管理的對象有表、查詢、窗體、報表、頁、宏和模塊,以上對象都存放在后綴為(.mdb)的數(shù)據(jù)庫文件中,便于用戶的操作和管理。GIS平臺Arcengine能夠良好的支持Access數(shù)據(jù)庫,Java語言在ODBC.JDBC 的橋接模式下也能夠很好的支持Access數(shù)據(jù)庫。n 3.1.4系統(tǒng)運(yùn)行平臺本系統(tǒng)的運(yùn)行環(huán)境為Win XP 操作系統(tǒng),以及系統(tǒng)平臺要裝有JavaRuntime 和 ArcgisEngine9.2 Runt

25、ime。n 3.2系統(tǒng)數(shù)據(jù)層次結(jié)構(gòu)搭建n 3.2.1系統(tǒng)結(jié)構(gòu)在進(jìn)行數(shù)據(jù)庫設(shè)計時,通過數(shù)據(jù)分層、圖層管理、屬性編碼和空間索引設(shè)計,建立空間數(shù)據(jù)庫,然后進(jìn)行屬性數(shù)據(jù)庫設(shè)計,最后建立空間數(shù)據(jù)庫與屬性數(shù)據(jù)庫的連接關(guān)系。 如圖3-1所示 GIS火車換乘系統(tǒng) 屬性數(shù)據(jù) ( Access) 空間數(shù)據(jù)(Geodatabase) 關(guān)鍵字火車站圖層;鐵路干線圖層;省界線圖層;省界面圖層;車站詳情,車次所經(jīng)車站,Point屬性表JDBCArcGIS engine9.2 圖3-1 : 系統(tǒng)結(jié)構(gòu)圖n 3.2.2系統(tǒng)空間數(shù)據(jù)空間數(shù)據(jù)是系統(tǒng)中GIS應(yīng)用環(huán)節(jié)的基礎(chǔ)數(shù)據(jù),他的合理組織直接影響著系統(tǒng)的整體組成。本系統(tǒng)空間數(shù)據(jù)主要

26、來自于國家1:400萬基礎(chǔ)地理數(shù)據(jù),并選擇需要的存儲在四個圖層當(dāng)中分別是省界線圖層,省界面圖層、主要鐵路線圖層、地級市以上居民點圖層,每一個圖層都包含了圖層名稱、空間特性、屬性數(shù)據(jù)等數(shù)據(jù)。另外一部分是網(wǎng)絡(luò)數(shù)據(jù)集,它是存儲網(wǎng)絡(luò)拓?fù)湫畔⒌妮d體,通過國家主要鐵路創(chuàng)建而成的,也作為重要的空間數(shù)據(jù)存儲在數(shù)據(jù)庫中。n 3.2.3系統(tǒng)屬性數(shù)據(jù)系統(tǒng)的屬性數(shù)據(jù)主要存儲在Access數(shù)據(jù)庫,分為三張表車次所經(jīng)車站表、車站詳情表、point屬性表(數(shù)據(jù)處理階段的系統(tǒng)生成表)因為在系統(tǒng)實現(xiàn)過程中,要實現(xiàn)最短路徑就必須要有可用的網(wǎng)絡(luò)節(jié)點存在在網(wǎng)絡(luò)數(shù)據(jù)上,然而個別的地級市居民點離網(wǎng)絡(luò)過遠(yuǎn)這樣就無法實現(xiàn)有效地最短路徑分析,

27、只能通過居民點查找網(wǎng)絡(luò)節(jié)點,通過尋找最近設(shè)施點的方法將網(wǎng)絡(luò)節(jié)點和城市居民點一一對應(yīng),并作為火車站的位置,存儲在系統(tǒng)生成這張表中圖3-2 point屬性表圖3-3 車次所經(jīng)車站表圖3-4車站詳情表l 3.3系統(tǒng)的組織結(jié)構(gòu)與實現(xiàn)思路GIS火車換乘系統(tǒng)主要實現(xiàn)火車的可視化查詢、火車信息的修改和用戶自定義最優(yōu)換乘方案查詢,用戶可以在看到查詢結(jié)果的同時看到具體的在地圖中的信息可視化顯示。為了實現(xiàn)設(shè)計的功能,主要有以下幾個模塊基于文本的火車站查詢,基于文本的車次查詢、基于文本的換乘方案查詢、用戶自定義換乘方案查詢、點選換乘方案查詢。如下圖3-5所示:結(jié)果用戶輸入車次名稱彈出窗體顯示車次詳情地圖顯示本車次所

28、經(jīng)車站,彈出窗口顯示車站詳情列表顯示所有乘坐方案,以表格形式顯示乘坐方案詳情,并排序。在地圖上顯示乘坐方案火車換乘系統(tǒng)路徑查詢車次查詢車站查詢高級用戶輸入車站名稱系統(tǒng)查找所經(jīng)車站系統(tǒng)查找車站詳情系統(tǒng)查找車次詳情系統(tǒng)查找所經(jīng)車次系統(tǒng)根據(jù)最短路徑在地圖中顯示出乘坐方案點擊車站名稱單擊某車次輸入出發(fā)站終點站在地圖圖上選擇輸入自定義選擇項:如價格系統(tǒng)查找所有乘坐方案系統(tǒng)查找并篩選方案單擊乘坐方案 圖35 系統(tǒng)實現(xiàn)思路l 3.4本章總結(jié)本章的主要內(nèi)容是基于GIS火車換乘系統(tǒng)的建立過程,在分析合理選用開發(fā)平臺、開發(fā)方式、開發(fā)語言和數(shù)據(jù)庫的基礎(chǔ)上,以全國主要鐵路線為例,探討了基于ArcEngine的火車換乘

29、系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的建立:空間數(shù)據(jù)和屬性數(shù)據(jù),并給出了系統(tǒng)開發(fā)組織結(jié)構(gòu)和系統(tǒng)實現(xiàn)的基本功能。u 4 火車換乘系統(tǒng)的實現(xiàn)l 4.1系統(tǒng)概述本系統(tǒng)以中國主要鐵路干線作為研究對象,利用已有的中國鐵路網(wǎng)圖層,結(jié)合地級市居民點圖層數(shù)據(jù)、網(wǎng)上搜集的火車站、火車車次信息等,開發(fā)了一個基于ArcEngine的GIS火車換乘系統(tǒng)。系統(tǒng)的軟件設(shè)計采用Java作為可視化編程工具,結(jié)合ArcEngine9.2進(jìn)行開發(fā)。在Java環(huán)境下通過JDBC.ODBC與Access數(shù)據(jù)庫連接,用SQL語句訪問表中的數(shù)據(jù),實現(xiàn)對火車信息的管理。利用ArcEngine組件提供的各種屬性、方法和工具,能夠進(jìn)行空間數(shù)據(jù)獲取、數(shù)據(jù)查詢、數(shù)據(jù)分析

30、等操作,從而實現(xiàn)對鐵路網(wǎng)絡(luò)信息數(shù)據(jù)的管理。l 4.2系統(tǒng)界面系統(tǒng)主要有菜單欄、工具欄、查詢頁簽、結(jié)果頁簽、高級頁簽組成和圖形窗口組成。系統(tǒng)界面設(shè)計人性化,并可以自由更換主題,更方便了用戶使用。如圖41所示圖41系統(tǒng)主界面l 4.3功能模塊論述n 4.3.1車次查詢打開主頁面點擊車次查詢單選按鈕,在車次文本框中輸入要查詢的車次號,然后點擊查詢,如圖42所示:圖42 車次查詢在結(jié)果頁簽當(dāng)中,將所有結(jié)果依照次序羅列出來,我們點擊第十站鄭州查看詳情如圖43所示:圖4-3車次查詢結(jié)果可以看到當(dāng)前車次,到達(dá)鄭州的時間、出站時間本車次是否有硬座、軟座等信息。n 4.3.2車站查詢單擊車站查詢單選按鈕,輸入要

31、查詢的車站名稱:此處我們以寶雞為例,在查詢結(jié)果的車次列表上我們單擊1046次列車會彈出1046次列車的詳細(xì)信息如圖4-4所示:圖4-4車站查詢結(jié)果n 4.3.3按路徑查詢本模塊是本系統(tǒng)中主要的模塊。本模塊的實現(xiàn)思路:首先從用戶輸入得到出發(fā)站和終點站,以出發(fā)站和終點站為關(guān)鍵字在數(shù)據(jù)庫中車次所經(jīng)車站表進(jìn)行遍歷。將所有含有出發(fā)站或者是終點站的車次分為只含有出發(fā)站的車次、只含有終點站的車次、既有出發(fā)站又有終點站的車次并分別存儲在list1、list2、list3中,然后對每一個list分別按照相應(yīng)的條件進(jìn)行排序并。將新的list1從出發(fā)站開始每次增加一個站點向下進(jìn)行循環(huán)并分別對list2、list3進(jìn)

32、行比對如果list2或list3中含有當(dāng)前循環(huán)的站點則將當(dāng)前站點作為中轉(zhuǎn)站以當(dāng)前l(fā)ist1中的車次作為中轉(zhuǎn)前車次、以list2或list3中的車次作為中轉(zhuǎn)后車次存儲在方案列表中。以這樣的方法分別對list3進(jìn)行遍歷。然后要實現(xiàn)車次路徑在地圖上顯示,有兩種途徑:(1):將每兩個相鄰火車站之間的鐵路線進(jìn)行命名,并存儲在圖層中,當(dāng)用戶點擊換乘方案時將當(dāng)前方案所經(jīng)過的所有鐵路線段的名稱查找出來,然后再到mapbean中一一顯示。這樣做顯然非常不合適,數(shù)據(jù)處理的工作量比較大。(2):也是本系統(tǒng)所采用的方法,得到方案所經(jīng)過的所有車站的名稱,并以這些車站作為最短路徑分析時的stops,這樣就查找出每兩個相鄰

33、車站之間的路徑,并存儲在新的圖層中顯示在mapbean中。單擊按路徑查詢單選按鈕,輸入出發(fā)站名稱和目的站名稱,單擊查詢按鈕:在結(jié)果頁簽中顯示所有換乘方案。單擊能夠直接到達(dá)的換乘方案返回路徑到mapbean中如圖4-5所示:圖4-5直接到達(dá)方案單擊需要換乘的方案如圖4-6所示:圖4-6需要換乘的方案返回?fù)Q乘路徑,在地圖窗口中顯示,并且氣泡窗口會在出發(fā)站、換乘站和終點站處進(jìn)行提示方便用戶進(jìn)行查看。n 4.3.4高級單擊高級頁簽,輸入出發(fā)站和終點站,選擇并輸入到站時間段、車次類型等信息。點擊查詢,所有方案存儲在表格當(dāng)中,表格某一行在地圖中顯示當(dāng)前換乘路徑,并彈出路程長度如圖4-7所示。圖4-7 高級

34、查詢結(jié)果在查詢結(jié)果的表格中單擊全程時間或者硬座價格等列的表頭或分別按照升序或者降序進(jìn)行排列顯示。注:全程時間為從出發(fā)站到換乘站、在換乘站等待換乘時間、從換乘站到終點站時間之和。價格為零表示此車次沒有此類座位如圖4-8所示。圖4-8 方案排序n 4.3.5 地圖工具(1) 點擊工具欄中測量距離工具,在map中單擊左鍵選擇端點后,單擊右鍵計算距離如圖4-9所示圖4-9 測量結(jié)果(2) 單擊工具欄中周邊查詢工具,然后輸入緩沖區(qū)距離,查找出當(dāng)前距離范圍內(nèi)的所有火車站,如圖4-10所示圖4-10 周邊查詢結(jié)果(3) 單擊菜單欄中的選擇窗口菜單,選擇顯示鷹眼如圖4-11。圖4-11 鷹眼(4)單擊菜單欄中

35、的圖上選擇,分別選擇矩形查詢、圓形查詢,進(jìn)行空間查詢圖4-12 查詢方式圖4-13 矩形框查詢 圖4-14 圓形框查詢單擊主題選擇菜單,用戶可以選擇合適的界面風(fēng)格如圖415所示:圖4-15 主題風(fēng)格選擇l 4.4本章總結(jié)本章的主要內(nèi)容是GIS火車換乘系統(tǒng)的開發(fā)與集成,主要包括系統(tǒng)概述,系統(tǒng)界面以及功能模塊的實現(xiàn)。在功能實現(xiàn)部分,本系統(tǒng)主要實現(xiàn)了車次查詢、車站查詢、路徑查詢、周邊查詢、測量距離等功能。u 5總結(jié)與展望l 5.1論文研究成果本系統(tǒng)以全國鐵路干線為研究對象,從GIS過車換乘系統(tǒng)的關(guān)鍵技術(shù)、基礎(chǔ)數(shù)據(jù)的獲取和建立、數(shù)據(jù)庫的建立等幾個方面著手,初步分析研究了火車換乘的方法、空間數(shù)據(jù)和屬性數(shù)

36、據(jù)的關(guān)聯(lián)以及系統(tǒng)平臺的建立。利用已有的全國鐵路網(wǎng)地圖,結(jié)合網(wǎng)上搜集的火車車次信息等,利用java結(jié)合ArcEngine9.2平臺建立火車換乘系統(tǒng)。該系統(tǒng)可以脫離相關(guān)GIS軟件獨(dú)立運(yùn)行,主要包括地圖操作、車次查詢、車站查詢、路徑查詢、周邊查詢、測量距離等功能模塊,實現(xiàn)了較為簡單的GIS火車換乘系統(tǒng)。 對GIS火車換乘系統(tǒng)中的相關(guān)技術(shù),從理論到實踐進(jìn)行了一系列基礎(chǔ)性及實驗性的研究,主要工作有:(1) 對二維空間查詢分析技術(shù)進(jìn)行了研究,實現(xiàn)了地圖點狀緩沖區(qū)查詢查詢、圓形查詢、框選查詢、測距等功能。(2)實現(xiàn)了火車換乘的基本查詢功能,包括:車站查詢、車次查詢。(3) 實現(xiàn)了可視化的火車換乘查詢。l 5

37、.2 論文的不足及進(jìn)一步工作展望由于作者能力所限,就本文GIS火車換乘系統(tǒng)研究而言,還有一些需要改進(jìn)和提高的地方,具體如下:(1) 系統(tǒng)實用性:本系統(tǒng)采用的是單機(jī)模式,還不能和Internet進(jìn)行實時的傳遞數(shù)據(jù),本系統(tǒng)應(yīng)該采用網(wǎng)站的形式進(jìn)行開發(fā),不但可以讓本系統(tǒng)更好的服務(wù)于大眾,也能夠?qū)崟r的更新火車信息數(shù)據(jù)。 (2) 系統(tǒng)的交互性:本系統(tǒng)僅完成了部分內(nèi)容并且所做的工作有限,交互性不強(qiáng)。(3) 系統(tǒng)的優(yōu)化:應(yīng)在數(shù)據(jù)處理上更加精細(xì),使系統(tǒng)反應(yīng)時間加快。(4) 系統(tǒng)的功能:Arcengine9.2為我們提供了豐富的編程接口,很多有用的功能本系統(tǒng)沒有實現(xiàn),比如地圖編輯、屬性數(shù)據(jù)更新的功能。u 致 謝在

38、即將畢業(yè)之際,我首先要向我的指導(dǎo)老師李老師致以最誠摯的感謝。本論文的研究工作是在導(dǎo)師的關(guān)懷和指導(dǎo)下完成的。從論文選題到撰寫完成的整個過程,李老師多次提出寶貴意見并給予指導(dǎo)才使得系統(tǒng)能夠圓滿完成。在課題研究期間,李同學(xué)給予了寶貴意見,使得自己在不斷的學(xué)習(xí)探討中,取得了不小的進(jìn)步,在此也表示衷心的感謝!同時在系統(tǒng)的開發(fā)中參考了網(wǎng)上的大量實例,對我?guī)椭容^大,在此我感謝ERSI社區(qū)論壇上的諸多幫助過我的人。 感謝在大學(xué)四年來傳授給我知識的地理信息系統(tǒng)教研室全體老師們,正是他們使我學(xué)到了許多寶貴的知識并擁有了不懈的動力!最后我對所有關(guān)心我、支持我的同學(xué)們、朋友們表示感謝!u 參考文獻(xiàn)1蘭小機(jī),劉德兒.

39、 Arcobjects GIS應(yīng)用開發(fā)_基于C#.NET.2006年9月2湯國安,楊昕.ArcGIS地理信息系統(tǒng)空間分析實驗教程.2006年1月3 Bruce Eckel. thinking in java 4.2006年2月4 涂超. 泉州市電子地圖及其公交查詢功能的實現(xiàn).蘇州科技學(xué)院學(xué)報(工程技術(shù)版).2006年6月5 金永超. 基于GIS的公交綜合信息平臺研究與設(shè)計.2007年10月.碩士論文6 張榮梅.智能交通地理信息系統(tǒng)的設(shè)計與實現(xiàn).計算機(jī)應(yīng)用研究,2000年7羅雄.使用.NET或JAVA進(jìn)行Arcengine開發(fā),2008年4月8欒軍.鐵路物資管理信息系統(tǒng).2007年12月9甘仞初

40、.信息系統(tǒng)開發(fā)2007年5月10 陳述彭. 城市化與城市地理信息系統(tǒng)2000年3月11 謝昆青. 空間數(shù)據(jù)庫.2004年1月12 程雄,王紅. GIS軟件應(yīng)用-AEC/INFO軟件操作與應(yīng)用.2004年6月u 附 錄(一) 主要程序代碼加載數(shù)據(jù)主要代碼public class MySource String pPath;IWorkspaceFactory pWorksapceFactory;/ 創(chuàng)建工作空間工廠public IFeatureWorkspace pFeatureWorkspace;/ 定義工作空間IFeatureClass cityFeatureClass;IFeatureCla

41、ss railwayFeatureClass;IFeatureClass netFeatureClass;IFeatureClass junctionFeatureClass;IFeatureClass lineFeatureClass;IFeatureClass mianFeatureClass;public MySource(String pPath) super();this.pPath = pPath;try pWorksapceFactory = new AccessWorkspaceFactory();pFeatureWorkspace = (IFeatureWorkspace)

42、pWorksapceFactory.openFromFile(pPath, 0); catch (UnknownHostException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();public IFeatureClass getCityFeatureClass() /得到地級市居民點的要素類try cityFeatureClass = pFeatureWorkspace.o

43、penFeatureClass("地市級居點"); catch (AutomationException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();return cityFeatureClass; public IFeatureClass getRailwayFeatureClass() try railwayFeatureClass = pFeature

44、Workspace.openFeatureClass("主要鐵路"); catch (AutomationException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace(); return railwayFeatureClass; public IFeatureClass getJunctionFeatureClass() try junctionFeature

45、Class = pFeatureWorkspace.openFeatureClass("railway_ND_Junctions"); catch (AutomationException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();return junctionFeatureClass; public IFeatureClass getLineFeatur

46、eClass() try lineFeatureClass = pFeatureWorkspace.openFeatureClass("省界線"); catch (AutomationException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace(); return lineFeatureClass; public IFeatureClass getMianFe

47、atureClass() try mianFeatureClass = pFeatureWorkspace.openFeatureClass("省界面"); catch (AutomationException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace(); return mianFeatureClass; 獲得路徑方案模塊:public List<Ob

48、ject> getStationsTrains() List<Object> stationsTrains;stationsTrains = new ArrayList<Object>();List<Object> startStopStationsTrains;/ 定義含有出發(fā)點又含有結(jié)束點的車次listList<Object> startStationsTrains;/ 含有出發(fā)點的列車List<Object> stopStationsTrains;/ 含有終點站的列車startStopStationsTrains = ne

49、w ArrayList<Object>();startStationsTrains = new ArrayList<Object>();stopStationsTrains = new ArrayList<Object>();String sql = "select * from 車次所經(jīng)車站"Connection conn = DB.getConnection();Statement sta = DB.getSta(conn);ResultSet rs = null;List<String> thisTrainStation

50、s;List<String> thisTrainDetails;try rs = sta.executeQuery(sql);while (rs.next() / 判斷當(dāng)前車次是否含有出發(fā)點和目的點,并存儲int isHaveBoth = 1;int startID = 0;int stopID = 0;thisTrainStations = AllUsedTools.convertString(rs.getString("所經(jīng)車站");thisTrainDetails = new ArrayList<String>();for (int i = 0

51、; i < thisTrainStations.size(); i+) if (thisTrainStations.get(i).equals(startText) isHaveBoth = isHaveBoth + 1;startID = i;if (thisTrainStations.get(i).equals(stopText) isHaveBoth = isHaveBoth + 2;stopID = i;if (isHaveBoth = 2) / 將車次名稱添加到車次詳情中的第0個元素thisTrainDetails.add(0, rs.getString("車次&qu

52、ot;)+" "+startID);thisTrainDetails.addAll(thisTrainStations);startStationsTrains.add(thisTrainDetails);if (isHaveBoth = 4) / 將車次名稱添加到車次詳情中的第0個元素thisTrainDetails.add(0, rs.getString("車次") + " " + startID+ " " + stopID);if (startID < stopID) / 如果終點站在出發(fā)站后面則添加t

53、hisTrainDetails.addAll(thisTrainStations);startStopStationsTrains.add(thisTrainDetails);if (isHaveBoth = 3) / 將車次名稱添加到車次詳情中的第0個元素thisTrainDetails.add(0, rs.getString("車次") + " " + stopID);thisTrainDetails.addAll(thisTrainStations);stopStationsTrains.add(thisTrainDetails); catch (

54、SQLException e) / TODO Auto-generated catch blocke.printStackTrace();stationsTrains.add(0, startStationsTrains);stationsTrains.add(1, startStopStationsTrains);stationsTrains.add(2, stopStationsTrains);stationsTrains = setStationsTrainsOrder(stationsTrains);/ 執(zhí)行排序return stationsTrains;SuppressWarnings("unchecked")/返回方案listpublic List<String> getWaysList(List<Object>

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論