溫毓銘 滕國文 楊建強(qiáng)
摘 要: 現(xiàn)代社會(huì)車輛擁堵已經(jīng)成為影響人們出行的一大障礙,如何獲得有效出行路徑規(guī)劃,避免擁堵是智能交通最需要解決的問題。智能交通,作為物聯(lián)網(wǎng)非常重要的發(fā)展領(lǐng)域,越來越被社會(huì)所需要。在研究了人們使用道路導(dǎo)航系統(tǒng)所需要的基本功能的基礎(chǔ)上,分別對數(shù)據(jù)庫模型設(shè)計(jì),程序架構(gòu)設(shè)計(jì),操作界面布局等進(jìn)行了研發(fā)。
關(guān)鍵詞: 車輛擁堵; 智能交通; 物聯(lián)網(wǎng); 道路導(dǎo)航
中圖分類號(hào):TP399 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2018)09-11-03
Abstract: Vehicle congestion in modern society has become one of the biggest obstacles to people's travel, how to obtain effective travel route planning and avoid congestion is the most important problem to be solved in intelligent transportation. Intelligent transportation, as a very important development area of IoT, is more and more needed by society. Under such background, this paper collects the basic functions that people need to use in the road navigation system, and researches and develops the database model design, the program architecture design and the operation interface layout respectively.
Key words: vehicle congestion; intelligent transportation; Internet of Things; road navigation
0 引言
道路導(dǎo)航系統(tǒng)近年來得到廣泛應(yīng)用,它的出現(xiàn)為人們?nèi)粘3鲂袔砹撕芏啾憷?,是物?lián)網(wǎng)中智能交通十分成功的應(yīng)用。智能交通給人們生活搭建起了智能的靈魂和思想,給城市現(xiàn)代化注入了新的精髓,對現(xiàn)在科技的發(fā)展可謂是大有裨益[1]。
對于一個(gè)成熟的道路導(dǎo)航系統(tǒng)而言,道路指示需要合理化。本文正是在這樣的背景下進(jìn)行開發(fā)和設(shè)計(jì)的,本課題的設(shè)計(jì)平臺(tái)采用c#集成開發(fā)環(huán)境,利用c#語言進(jìn)行編程開發(fā)和代碼實(shí)現(xiàn),采用SQL SERVER數(shù)據(jù)庫管理數(shù)據(jù)。
1 物聯(lián)網(wǎng)簡介
物聯(lián)網(wǎng)是互聯(lián)網(wǎng)的一種更為先進(jìn)的形態(tài),是由分組數(shù)據(jù)技術(shù)而發(fā)展開來的。物聯(lián)網(wǎng)對于網(wǎng)絡(luò)有很多要求,對于安全性、穩(wěn)定性、同步性等都有非常高的要求[2]。
2 系統(tǒng)開發(fā)技術(shù)介紹
2.1 C#語言
C#是一種面向?qū)ο蟮恼Z言,在使用過程中有隱蔽性,具有安全高效方便健壯的特點(diǎn)。以優(yōu)秀的代碼編譯結(jié)構(gòu)、良好的多功能處理能力成為了.NET開發(fā)的首選語言,在計(jì)算領(lǐng)域和計(jì)算通信領(lǐng)域中大放異彩。
2.2 SQL SERVER
SQL SERVER是一種安全、便捷、支持多平臺(tái)的數(shù)據(jù)庫系統(tǒng)[3]。
3 系統(tǒng)設(shè)計(jì)
3.1 可行性分析
從技術(shù)方面來講,由于C#技術(shù)學(xué)習(xí)方便,提供了大量的接口,可以利用現(xiàn)有的技術(shù)來完成開發(fā)工作;從經(jīng)濟(jì)方面來講,只要具有計(jì)算機(jī)就可以十分容易的進(jìn)行開發(fā)工作,開發(fā)成本是比較低的,能夠滿足經(jīng)濟(jì)的要求;從操作方面來講,可以十分方便的實(shí)現(xiàn)與用戶之間的交互,做到操作簡單方便。
由于本文設(shè)計(jì)的導(dǎo)航系統(tǒng)功能簡單易用,開發(fā)技術(shù)和數(shù)據(jù)庫開發(fā)技術(shù)也比較成熟,用戶可以十分方便地調(diào)用系統(tǒng)提供的很多接口,因此,應(yīng)用開發(fā)不存在任何的技術(shù)難度,能夠?qū)崿F(xiàn)這個(gè)系統(tǒng)。從搜集的資料和查閱的文獻(xiàn)來看,本文設(shè)計(jì)開發(fā)的系統(tǒng)對計(jì)算機(jī)硬件沒有任何特殊的要求。系統(tǒng)完全可以從技術(shù)做到與用戶良好的互動(dòng),使設(shè)計(jì)的界面做到友好,操作步驟簡單可行。
3.2 功能需求
本文設(shè)計(jì)的道路導(dǎo)航系統(tǒng)提供的是一個(gè)簡單實(shí)用的道路導(dǎo)航系統(tǒng),具備其他一般道路導(dǎo)航系統(tǒng)所必須具備的一般功能。具體功能如下。
⑴ 開始導(dǎo)航
① 載入地圖并啟動(dòng)程序:實(shí)現(xiàn)地圖的載入。
② 計(jì)算路線距離:在地圖上選擇起點(diǎn)和終點(diǎn),進(jìn)行距離計(jì)算。
③ 擁堵管理:通過選擇地點(diǎn)顯示其線路的起點(diǎn)和終點(diǎn),對當(dāng)前的交通狀況進(jìn)行設(shè)置,包括設(shè)置擁堵和解除擁堵兩種方式。
⑵ 添加路段
可實(shí)現(xiàn)左鍵添加、選擇、更改節(jié)點(diǎn),右鍵刪除節(jié)點(diǎn),也可直接拖動(dòng)添加線路。
3.3 性能需求
使用者按照他需要完成的目的、操作的方式來定制軟件,實(shí)現(xiàn)一系列的功能。在設(shè)計(jì)是就需要調(diào)查這個(gè)功能的普遍需求,從而求得大部分人們的認(rèn)可,這樣可以保證功能的基礎(chǔ)上增加使用的價(jià)值,一個(gè)好的優(yōu)秀的軟件是會(huì)做到這樣的平衡的。
3.4 軟件質(zhì)量屬性包括
⑴ 有效性:指的是在系統(tǒng)運(yùn)行的時(shí)間中,真正做到系統(tǒng)可用和運(yùn)行時(shí)間完全私有化兩點(diǎn)所占據(jù)的時(shí)間百分比。
⑵ 效率性:如果一個(gè)軟件的運(yùn)行需要系統(tǒng)非常大部分的資源,那么就會(huì)導(dǎo)致系統(tǒng)卡頓,不流暢。所以一個(gè)軟件的占用率是很重要的評比標(biāo)準(zhǔn),這個(gè)特性就是高效性。
⑶ 靈活性:是指對設(shè)備進(jìn)行功能升級(jí)時(shí)所需要的時(shí)間和工效。
⑷ 全面性:全面性(安全性)可以實(shí)現(xiàn)以下功能,在系統(tǒng)運(yùn)行期間防止非法的用戶和相關(guān)程序訪問系統(tǒng),防止不法的個(gè)人數(shù)據(jù)進(jìn)入系統(tǒng)的數(shù)據(jù)庫從而做到可靠,健壯。
⑸ 互訪問性:這是本機(jī)與其他相同或者不同設(shè)備的互相訪問的困難級(jí)別[4]。
4 系統(tǒng)分析設(shè)計(jì)
4.1 總體設(shè)計(jì)
基于物聯(lián)網(wǎng)的道路導(dǎo)航系統(tǒng)設(shè)計(jì)主要包括動(dòng)態(tài)規(guī)劃和求最短路徑功能。本系統(tǒng)通過研究其他道路導(dǎo)航系統(tǒng),針對目前實(shí)際情況,設(shè)計(jì)實(shí)現(xiàn)的主要功能包括:路徑的規(guī)劃、節(jié)點(diǎn)及路線的管理以及距離的計(jì)算和擁堵路段管理,詳細(xì)說明如表1所示。
通過上面的功能分析,道路導(dǎo)航的功能模塊劃分已然完成。要想把整個(gè)道路導(dǎo)航系統(tǒng)較好的通過模塊之間的關(guān)系搭建出來,還需要分析一個(gè)模塊與其他模塊之間的關(guān)系,通過其共有的部分將其串聯(lián)起來,才算將道路導(dǎo)航系統(tǒng)比較完整的架構(gòu)出來。
4.2 數(shù)據(jù)庫設(shè)計(jì)
道路導(dǎo)航系統(tǒng)的實(shí)現(xiàn)離不開數(shù)據(jù)庫的支撐,因?yàn)閷τ诼糜畏窒硐到y(tǒng)來講會(huì)有大量的信息需要存儲(chǔ),而信息的存儲(chǔ)目前多數(shù)采用數(shù)據(jù)庫實(shí)現(xiàn),在比較了SQL SERVER、ORACLE、MYSQL等多種數(shù)據(jù)庫的優(yōu)缺點(diǎn)后,本文采用SQL SERVER數(shù)據(jù)庫,它體積較小,運(yùn)行速度快,比較適合快速開發(fā),且存儲(chǔ)安全可靠,便于整合管理,運(yùn)行速度快。
5 詳細(xì)設(shè)計(jì)
5.1 算法設(shè)計(jì)
Dijkstra是用于計(jì)算從一個(gè)節(jié)點(diǎn)出發(fā)到其余節(jié)點(diǎn)最短路徑的算法。采用的思路如下。
⑴ 創(chuàng)建兩個(gè)表,OPEN,CLOSE。
⑵ OPEN表保存所有已生成而未考察的節(jié)點(diǎn),CLOSED表中記錄已訪問過的節(jié)點(diǎn)。
⑶ 訪問路網(wǎng)中距離起始點(diǎn)最近且沒有被檢查過的點(diǎn),把該點(diǎn)放入OPEN組等待檢查。
⑷ OPEN表中找出距起始點(diǎn)最近的點(diǎn),找出這個(gè)點(diǎn)的所有子節(jié)點(diǎn),放到CLOSE表中。
⑸ 遍歷這個(gè)點(diǎn)的子節(jié)點(diǎn)。求出這些子節(jié)點(diǎn)距起始點(diǎn)的距離,放子節(jié)點(diǎn)到OPEN表中。
⑹ 重復(fù)第2和第3步,直到OPEN表為空,或找到目標(biāo)點(diǎn)[5]。
5.2 流程圖設(shè)計(jì)
線路流程圖設(shè)計(jì)如圖1所示。
用戶先選擇起點(diǎn)位置,然后選擇目的位置,之后把相關(guān)數(shù)據(jù)發(fā)送到服務(wù)器,服務(wù)器對數(shù)據(jù)進(jìn)行分析判斷,返回需求信息給客戶端,客戶端通過算法在道路導(dǎo)航系統(tǒng)上進(jìn)行顯示。
5.3 地圖初始化流程圖設(shè)計(jì)
地圖初始化的過程是地圖進(jìn)行加載的過程,由界面布局加載、地圖和定位信息初始化、和圖層的初始化組成。
5.4 界面設(shè)計(jì)
5.4.1 主界面設(shè)計(jì)
程序的開始由背景和功能按鈕組成,按鈕分別為開始導(dǎo)航和添加路段。
5.4.2 添加路段界面設(shè)計(jì)
添加路段界面包括節(jié)點(diǎn)信息添加、節(jié)點(diǎn)信息顯示、節(jié)點(diǎn)信息修改、節(jié)點(diǎn)信息保存和返回。
5.4.3 導(dǎo)航界面設(shè)計(jì)
導(dǎo)航界面主要實(shí)現(xiàn)地圖載入、程序的啟動(dòng)、線路選擇、擁堵管理以及計(jì)算距離等功能,也可直接返回主界面,如圖2所示。
6 結(jié)束語
本文所研發(fā)的道路導(dǎo)航系統(tǒng),具有易用、實(shí)用的優(yōu)點(diǎn)。在下一步的研發(fā)過程中,我們會(huì)對已有的道路導(dǎo)航系統(tǒng),學(xué)習(xí)和分析,結(jié)合我國交通實(shí)際情況,加入交通狀況的實(shí)時(shí)參考因素,對規(guī)劃算法進(jìn)行優(yōu)化,從而來適應(yīng)越來越多交通狀況。目前我國在交通行業(yè)發(fā)展取得了很大的進(jìn)步,國家對道路交通所出現(xiàn)的問題越來越重視。我們會(huì)更加努力,為祖國在智能交通行業(yè)貢獻(xiàn)自己的力量。
參考文獻(xiàn)(References):
[1] 張望.智能交通對城市空間的影響[J].規(guī)劃師,2017.33(S1):78-82
[2] 張玉清,周威,彭安妮.物聯(lián)網(wǎng)安全綜述[J].計(jì)算機(jī)研究與發(fā)展,2017.54(10):2130-2143
[3] 王珊.數(shù)據(jù)庫系統(tǒng)概論(第4版)[M].高等教育出版社,2006.
[4] 楊劍.數(shù)據(jù)結(jié)構(gòu)[M].清華大學(xué)出版社,2011.
[5] 滕國文.算法設(shè)計(jì)方法與優(yōu)化[M].清華大學(xué)出版社,2013.