溫毓銘 滕國文 楊建強
摘 要: 現代社會車輛擁堵已經成為影響人們出行的一大障礙,如何獲得有效出行路徑規劃,避免擁堵是智能交通最需要解決的問題。智能交通,作為物聯網非常重要的發展領域,越來越被社會所需要。在研究了人們使用道路導航系統所需要的基本功能的基礎上,分別對數據庫模型設計,程序架構設計,操作界面布局等進行了研發。
關鍵詞: 車輛擁堵; 智能交通; 物聯網; 道路導航
中圖分類號:TP399 文獻標志碼:A 文章編號: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 引言
道路導航系統近年來得到廣泛應用,它的出現為人們日常出行帶來了很多便利,是物聯網中智能交通十分成功的應用。智能交通給人們生活搭建起了智能的靈魂和思想,給城市現代化注入了新的精髓,對現在科技的發展可謂是大有裨益[1]。
對于一個成熟的道路導航系統而言,道路指示需要合理化。本文正是在這樣的背景下進行開發和設計的,本課題的設計平臺采用c#集成開發環境,利用c#語言進行編程開發和代碼實現,采用SQL SERVER數據庫管理數據。
1 物聯網簡介
物聯網是互聯網的一種更為先進的形態,是由分組數據技術而發展開來的。物聯網對于網絡有很多要求,對于安全性、穩定性、同步性等都有非常高的要求[2]。
2 系統開發技術介紹
2.1 C#語言
C#是一種面向對象的語言,在使用過程中有隱蔽性,具有安全高效方便健壯的特點。以優秀的代碼編譯結構、良好的多功能處理能力成為了.NET開發的首選語言,在計算領域和計算通信領域中大放異彩。
2.2 SQL SERVER
SQL SERVER是一種安全、便捷、支持多平臺的數據庫系統[3]。
3 系統設計
3.1 可行性分析
從技術方面來講,由于C#技術學習方便,提供了大量的接口,可以利用現有的技術來完成開發工作;從經濟方面來講,只要具有計算機就可以十分容易的進行開發工作,開發成本是比較低的,能夠滿足經濟的要求;從操作方面來講,可以十分方便的實現與用戶之間的交互,做到操作簡單方便。
由于本文設計的導航系統功能簡單易用,開發技術和數據庫開發技術也比較成熟,用戶可以十分方便地調用系統提供的很多接口,因此,應用開發不存在任何的技術難度,能夠實現這個系統。從搜集的資料和查閱的文獻來看,本文設計開發的系統對計算機硬件沒有任何特殊的要求。系統完全可以從技術做到與用戶良好的互動,使設計的界面做到友好,操作步驟簡單可行。
3.2 功能需求
本文設計的道路導航系統提供的是一個簡單實用的道路導航系統,具備其他一般道路導航系統所必須具備的一般功能。具體功能如下。
⑴ 開始導航
① 載入地圖并啟動程序:實現地圖的載入。
② 計算路線距離:在地圖上選擇起點和終點,進行距離計算。
③ 擁堵管理:通過選擇地點顯示其線路的起點和終點,對當前的交通狀況進行設置,包括設置擁堵和解除擁堵兩種方式。
⑵ 添加路段
可實現左鍵添加、選擇、更改節點,右鍵刪除節點,也可直接拖動添加線路。
3.3 性能需求
使用者按照他需要完成的目的、操作的方式來定制軟件,實現一系列的功能。在設計是就需要調查這個功能的普遍需求,從而求得大部分人們的認可,這樣可以保證功能的基礎上增加使用的價值,一個好的優秀的軟件是會做到這樣的平衡的。
3.4 軟件質量屬性包括
⑴ 有效性:指的是在系統運行的時間中,真正做到系統可用和運行時間完全私有化兩點所占據的時間百分比。
⑵ 效率性:如果一個軟件的運行需要系統非常大部分的資源,那么就會導致系統卡頓,不流暢。所以一個軟件的占用率是很重要的評比標準,這個特性就是高效性。
⑶ 靈活性:是指對設備進行功能升級時所需要的時間和工效。
⑷ 全面性:全面性(安全性)可以實現以下功能,在系統運行期間防止非法的用戶和相關程序訪問系統,防止不法的個人數據進入系統的數據庫從而做到可靠,健壯。
⑸ 互訪問性:這是本機與其他相同或者不同設備的互相訪問的困難級別[4]。
4 系統分析設計
4.1 總體設計
基于物聯網的道路導航系統設計主要包括動態規劃和求最短路徑功能。本系統通過研究其他道路導航系統,針對目前實際情況,設計實現的主要功能包括:路徑的規劃、節點及路線的管理以及距離的計算和擁堵路段管理,詳細說明如表1所示。
通過上面的功能分析,道路導航的功能模塊劃分已然完成。要想把整個道路導航系統較好的通過模塊之間的關系搭建出來,還需要分析一個模塊與其他模塊之間的關系,通過其共有的部分將其串聯起來,才算將道路導航系統比較完整的架構出來。
4.2 數據庫設計
道路導航系統的實現離不開數據庫的支撐,因為對于旅游分享系統來講會有大量的信息需要存儲,而信息的存儲目前多數采用數據庫實現,在比較了SQL SERVER、ORACLE、MYSQL等多種數據庫的優缺點后,本文采用SQL SERVER數據庫,它體積較小,運行速度快,比較適合快速開發,且存儲安全可靠,便于整合管理,運行速度快。
5 詳細設計
5.1 算法設計
Dijkstra是用于計算從一個節點出發到其余節點最短路徑的算法。采用的思路如下。
⑴ 創建兩個表,OPEN,CLOSE。
⑵ OPEN表保存所有已生成而未考察的節點,CLOSED表中記錄已訪問過的節點。
⑶ 訪問路網中距離起始點最近且沒有被檢查過的點,把該點放入OPEN組等待檢查。
⑷ OPEN表中找出距起始點最近的點,找出這個點的所有子節點,放到CLOSE表中。
⑸ 遍歷這個點的子節點。求出這些子節點距起始點的距離,放子節點到OPEN表中。
⑹ 重復第2和第3步,直到OPEN表為空,或找到目標點[5]。
5.2 流程圖設計
線路流程圖設計如圖1所示。
用戶先選擇起點位置,然后選擇目的位置,之后把相關數據發送到服務器,服務器對數據進行分析判斷,返回需求信息給客戶端,客戶端通過算法在道路導航系統上進行顯示。
5.3 地圖初始化流程圖設計
地圖初始化的過程是地圖進行加載的過程,由界面布局加載、地圖和定位信息初始化、和圖層的初始化組成。
5.4 界面設計
5.4.1 主界面設計
程序的開始由背景和功能按鈕組成,按鈕分別為開始導航和添加路段。
5.4.2 添加路段界面設計
添加路段界面包括節點信息添加、節點信息顯示、節點信息修改、節點信息保存和返回。
5.4.3 導航界面設計
導航界面主要實現地圖載入、程序的啟動、線路選擇、擁堵管理以及計算距離等功能,也可直接返回主界面,如圖2所示。
6 結束語
本文所研發的道路導航系統,具有易用、實用的優點。在下一步的研發過程中,我們會對已有的道路導航系統,學習和分析,結合我國交通實際情況,加入交通狀況的實時參考因素,對規劃算法進行優化,從而來適應越來越多交通狀況。目前我國在交通行業發展取得了很大的進步,國家對道路交通所出現的問題越來越重視。我們會更加努力,為祖國在智能交通行業貢獻自己的力量。
參考文獻(References):
[1] 張望.智能交通對城市空間的影響[J].規劃師,2017.33(S1):78-82
[2] 張玉清,周威,彭安妮.物聯網安全綜述[J].計算機研究與發展,2017.54(10):2130-2143
[3] 王珊.數據庫系統概論(第4版)[M].高等教育出版社,2006.
[4] 楊劍.數據結構[M].清華大學出版社,2011.
[5] 滕國文.算法設計方法與優化[M].清華大學出版社,2013.