摘 ?要:為了利用交通大數(shù)據(jù)為道路建設提供重要依據(jù),本研究基于Web的Browser/Server結構模式,采用ASP.NET技術,借助百度地圖JavaScript API,應用C#、JavaScript和T-SQL等編程語言設計并實現(xiàn)了交通車速區(qū)間位置查詢系統(tǒng)。首先通過對交通大數(shù)據(jù)進行整理得到GPS數(shù)據(jù),然后通過該系統(tǒng)的車速區(qū)間位置查詢頁面對十進制經(jīng)緯度坐標精確到小數(shù)點后的位數(shù)和查詢條件(經(jīng)緯度范圍、車速區(qū)間和車輛數(shù)量下限)進行設置,可查詢到車輛集中停放、堵車、車流量大和車輛超速的具體位置。通過實驗與分析,基于交通大數(shù)據(jù)的車速區(qū)間位置查詢系統(tǒng)可以為道路建設規(guī)劃與改造降低事故發(fā)生率提供重要的依據(jù)。
關鍵詞:交通大數(shù)據(jù);位置查詢系統(tǒng);百度地圖API;Web;ASP.NET;C#
中圖分類號:TP391.1 ? ? 文獻標識碼:A 文章編號:2096-4706(2019)05-0001-06
Abstract:In order to provide an important basis for road construction by using traffic data,this paper designs and implements a traffic speed interval location query system based on Browser/Server structure mode of Web,using ASP.NET technology and Baidu Map JavaScript API,using C#,JavaScript and T-SQL programming languages. Firstly,the GPS data is obtained by sorting out the traffic data. Then,the decimal coordinates of longitude and latitude are precisely set to the digits after decimal point and the query conditions(longitude and latitude range,speed interval and lower limit of vehicle number)are set through the speed interval location query page of the system,which can query the specific locations of concentrated parking,traffic jam,large traffic volume and vehicle overspeed. Through experiments and analysis, the speed interval location query system based on traffic data can provide an important basis for road construction planning and reconstruction to reduce the accident rate.
Keywords:traffic big data;location query system;Baidu map API;Web;ASP.NET;C#
0 ?引 ?言
目前國內(nèi)面臨嚴峻的交通問題[1-4],城市中交通狀況不佳的現(xiàn)象普遍存在,時間的延誤、車速過低和能源的浪費給消費者帶來了極大的經(jīng)濟損失,大量廢棄物的排放和大量噪聲的制造,對城市的環(huán)境造成了很大的影響。如果能夠?qū)煌ù髷?shù)據(jù)進行分析,并查找到不同車速區(qū)間車輛的運行情況和位置,可為道路建設規(guī)劃與改造和降低事故發(fā)生率提供重要的依據(jù)。
在當今的互聯(lián)網(wǎng)時代,可以借助交通大數(shù)據(jù)為交通模型提供核心數(shù)據(jù)[5],交通大數(shù)據(jù)來源于對各種車輛的GPS信息的采集,比如公交車、貨車、出租車、網(wǎng)約車和私家車,采集到的車輛GPS信息的數(shù)據(jù)格式種類繁多,其中蘊含著重要的交通信息,這些信息可以通過數(shù)據(jù)分析和挖掘得到。近年國外發(fā)展了智能交通系統(tǒng)與數(shù)字道路交互式可視化與評價網(wǎng)絡(DRIVE Net)等[6,7],目前國內(nèi)的交通信息服務系統(tǒng)種類繁多,具有代表性的有百度地圖導航和高德地圖導航等,但仍然需要大力發(fā)展基于大數(shù)據(jù)分析的新型交通信息服務系統(tǒng)。
本文構建了基于Web的交通車速區(qū)間位置查詢系統(tǒng),通過設置經(jīng)緯度的精確度和查詢條件,從交通GPS大數(shù)據(jù)中查找到在設定的車速區(qū)間范圍內(nèi)的車輛運行的具體位置(經(jīng)緯度),然后在經(jīng)緯度的精確度范圍內(nèi)進行統(tǒng)計,并在地圖中標定,可為道路建設規(guī)劃與改造提供重要的依據(jù)。
1 ?車速區(qū)間位置查詢系統(tǒng)的需求分析與架構
1.1 ?車速區(qū)間位置查詢系統(tǒng)構需求分析
交通車速區(qū)間位置查詢系統(tǒng)多層次數(shù)據(jù)流如圖1所示。
1.1.1 ?普通用戶
普通用戶的功能主要包括注冊、登錄和利用GPS數(shù)據(jù)進行車速區(qū)間位置的查詢等。
1.1.2 ?系統(tǒng)管理員
系統(tǒng)管理員的功能主要包括GPS數(shù)據(jù)庫的管理和普通用戶的審核與刪除等。
1.2 ?系統(tǒng)架構
該系統(tǒng)的架構采用Web的Browser/Server(即瀏覽器/服務器)結構,包括表示層、業(yè)務層和數(shù)據(jù)層。其中表示層主要是實現(xiàn)用戶與業(yè)務層之間的所有交互和邏輯功能;業(yè)務層的功能是接收表示層的請求,并向表示層返回結果;數(shù)據(jù)層的功能主要是系統(tǒng)數(shù)據(jù)的保存,該數(shù)據(jù)包括GSP數(shù)據(jù)和相關的用戶數(shù)據(jù)等,并為業(yè)務層提供所需要的數(shù)據(jù)。
2 ?系統(tǒng)設計
2.1 ?系統(tǒng)結構
交通車速區(qū)間位置查詢系統(tǒng)主要模塊構成如圖2所示。
2.2 ?數(shù)據(jù)庫結構
采用Microsoft SQL Server2008構建數(shù)據(jù)庫BigDataGps_DB,為了儲存大數(shù)據(jù)中對本系統(tǒng)有用的信息,本文建站數(shù)據(jù)表dbo.GPS,其屬性如圖3(a)所示。用戶信息數(shù)據(jù)表的屬性如圖3(b)所示。主要數(shù)據(jù)表之間的關系E-R圖如圖4所示。
3 ?系統(tǒng)實現(xiàn)
3.1 ?實現(xiàn)工具與技術
車速區(qū)間位置查詢系統(tǒng)采用了ASP.NET技術,并借助了百度地圖JavaScript API,通過C#、JavaScript和T-SQL等編程語言實現(xiàn),其中應用了AJAX技術和ADO.NET技術。
系統(tǒng)開發(fā)平臺:Microsoft Visual Studio2010;數(shù)據(jù)庫管理系統(tǒng):Microsoft SQL Server2008;運行平臺:Windows XP/Windows10/Windows Server 2003;運行環(huán)境:Micro-soft.NET Framework SDK4.0。
3.2 ?車速定位數(shù)據(jù)
3.2.1 ?交通大數(shù)據(jù)的整理
首先選擇所需要的交通大數(shù)據(jù)文件HfGps.CSV,導入數(shù)據(jù)庫BigDataGps_DB中,并轉換數(shù)據(jù)格式得到數(shù)據(jù)表dbo.HFGps(包含362706條記錄),從而獲得原始交通大數(shù)據(jù)信息。為了獲得大數(shù)據(jù)中對本系統(tǒng)有用的信息,從數(shù)據(jù)表dbo.HFGps中選取字段(經(jīng)度、緯度和車速)的數(shù)據(jù)插入數(shù)據(jù)表dbo.GPS中,從而可以根據(jù)需要對數(shù)據(jù)表dbo.GPS進行任意操作,不會破壞原始交通大數(shù)據(jù)信息。
3.2.2 ?十進制經(jīng)緯度坐標的精確度
經(jīng)緯度可以表示地球上任何一個固定的點,通過GPS可以獲得具體位置的十進制坐標表示的經(jīng)緯度,十進制經(jīng)緯度坐標小數(shù)點后位數(shù)的精確度用式(1)進行計算,其中L為位置的精度范圍(弧長);R為地球半徑,設為6400KM。
從式(1)中可以得知,十進制經(jīng)緯度坐標小數(shù)點后第3位的精度范圍設為L=100M。當N≈0.0001時,可以得知十進制經(jīng)緯度小數(shù)點后第4位的精度范圍為L=10M。本研究對十進制經(jīng)緯度坐標進行四舍五入,分別保留3或4位小數(shù)(即定位精度設定為100M或10M),然后進行比較實驗。
3.2.3 ?定位數(shù)據(jù)的獲得
在數(shù)據(jù)庫BigDataGps_DB中創(chuàng)建存儲過程,把經(jīng)緯度范圍(左上角經(jīng)緯度與右下角經(jīng)緯度)、車速區(qū)間(車速下限、車速上限)和車輛數(shù)量下限作為參數(shù)傳遞給該存儲過程,采用ADO.NET技術執(zhí)行該存儲過程,并以DataTable的形式獲取GPS數(shù)據(jù)。儲存過程的應用能在變更數(shù)據(jù)庫架構時顯著降低中斷應用程序的可能性,可減小SQL注入性攻擊的可能性[8]。
在存儲過程SearchGps中創(chuàng)建表變量DECLARE@Gps TABLE(LONGITUDE NUMERIC(9,6),LATITUDE NUMERIC(9,6)),然后從數(shù)據(jù)表dbo.GPS中選取符合搜索條件(經(jīng)緯度范圍、車速區(qū)間)的數(shù)據(jù)插入表變量@Gps中,這時可以對表變量@Gps進行任意操作。首先對表變量@Gps中的經(jīng)度和緯度字段的數(shù)據(jù)采用四舍五入的方式在小數(shù)點后保留3或4位有效數(shù)字,并進行更新,然后對表變量@Gps中的經(jīng)度和緯度字段進行group by查詢結果分組,配合聚合函數(shù)count(*)進行分組記錄數(shù)的計算,然后利用having子句進行篩選分組記錄數(shù)大于等于車輛數(shù)量下限的分組,得到的結果中包括經(jīng)緯度(小數(shù)點后保留3或4位有效數(shù)字)和在該經(jīng)緯度的車速區(qū)間范圍內(nèi)的且大于等于車輛數(shù)量下限的車輛數(shù)量。
3.3 ?車速區(qū)間位置查詢頁面的實現(xiàn)
車速區(qū)間位置查詢頁面的實現(xiàn)采用了母板和用戶控件,并使用了百度地圖JavaScript API和AJAX技術。在整個網(wǎng)站中使用母板頁,可增強頁面的整體效果且修改方便[9],Ajax技術的應用讓局部刷新頁面成為可能,能產(chǎn)生高度交互和動態(tài)的Web頁面[10]。
3.3.1 ?電子地圖初步定位
首先利用百度地圖JavaScript API創(chuàng)建Map實例,從而在車速區(qū)間位置查詢頁面中顯示百度地圖。由于本文獲得的GPS交通大數(shù)據(jù)只能覆蓋一個小區(qū)域,所以首先需要在百度地圖中查找定位這個區(qū)域,車速區(qū)間位置查詢頁面采用了兩種基于百度地圖JavaScript API的查找定位方法,第一種是輸入具體地址,然后采用方法BMap.LocalSearch()進行查找定位,第二種是輸入具體的經(jīng)緯度,并把該經(jīng)緯度設置為地圖的中心點坐標。
3.3.2 ?查詢經(jīng)緯度范圍的獲取
電子地圖初步定位,并找到需要查詢的區(qū)域。獲取地圖可視區(qū)域的緯度范圍,并實時顯示地圖可視區(qū)域緯度范圍(左上端點和右下端點)的經(jīng)緯度。把地圖可視區(qū)域左上端點和右下端點經(jīng)緯度保存在4個服務器控件隱藏域HiddenField中,該控件可用于頁面前臺JavaScript與后臺C#之間的數(shù)據(jù)傳遞。
3.3.3 ?車速區(qū)間位置查詢與顯示
設置1個服務器控件TextBox,用于用戶輸入十進制經(jīng)緯度坐標小數(shù)點后要保留的位數(shù),設置3個服務器控件TextBox,用于用戶輸入查詢條件(車速下限、車速上限和車輛數(shù)量下限),設置服務器控件Button用于觸發(fā)回傳,把十進制經(jīng)緯度坐標小數(shù)點后要保留的位數(shù)和查詢條件(經(jīng)緯度范圍、車速區(qū)間和車輛數(shù)量下限)回傳至服務器,并執(zhí)行存儲過程SearchGps獲取GPS數(shù)據(jù),獲取的GPS數(shù)據(jù)為數(shù)據(jù)表DataTablegpstable,在后臺把數(shù)據(jù)表gpstable中的字段(經(jīng)度LONGITUDE、緯度LATITUDE和車輛數(shù)量num)的數(shù)據(jù)以逗號為分隔符分別拼接成3個字符串(經(jīng)度字符串LngString、緯度字符串LatString和車輛數(shù)量字符串NumString),然后分別賦給3個服務器控件HiddenField保存,目的是方便前臺JavaScript調(diào)用。前臺JavaScript通過調(diào)用2個服務器控件HiddenField得到字符串LngString和LatString,然后采用split()方法以逗號為分隔符把這2個字符串分別分割成2個字符串數(shù)組(經(jīng)度字符串數(shù)組strLngArr[]、緯度字符串數(shù)組strLatArr[]),至此就得到了用于在地圖上進行顯示的十進制經(jīng)緯度坐標。
利用百度地圖JavaScript API,根據(jù)經(jīng)度字符串數(shù)組和緯度字符串數(shù)組中保存的數(shù)據(jù),通過循環(huán)在地圖中創(chuàng)建紅色圖標標注,結果如圖5所示。在地圖右邊設置服務器控件GridView用來接收并顯數(shù)據(jù)表gpstable中的數(shù)據(jù),并按車輛數(shù)量從大到小進行了排序,結果如圖5中地圖右邊的表格所示。
3.4 ?用戶模塊
用戶模塊包括用戶登錄和用戶注冊頁面,這兩個頁面都采用了用戶控件和母板技術,在母板的框架下設置服務器控件Login構建用戶登錄頁面,為防止惡意的登錄攻擊,在頁面中還設置了登錄驗證碼,如圖6(a)所示。用戶注冊頁面的構建也是通過在母板的框架下設置服務器控件LoginView來實現(xiàn),如圖6(b)所示。
3.5 ?系統(tǒng)管理模塊
系統(tǒng)管理模塊包括用戶信息管理頁面和系統(tǒng)管理,用戶信息管理頁面如圖7所示,該頁面采用了用戶控件、母板、分頁顯示和AJAX技術。
在該頁面中設置服務器控件GridView接收并顯示用戶注冊信息,在服務器控件GridView中可刪除選定的用戶注冊信息,但不可修改。由于注冊的用戶可能會很多,所以采用了分頁顯示技術。
4 ?應用實驗與分析
打開車速區(qū)間位置查詢頁面,在地圖中找到要查詢的區(qū)域,并把地圖縮放到合適的大小,從而獲取查詢條件中的經(jīng)緯度范圍(左上角經(jīng)緯度與右下角經(jīng)緯度)的數(shù)據(jù)。然后在該頁面輸入車速區(qū)間(車速下限、車速上限)和車輛數(shù)量下限進行查詢實驗。
為了分析和比較各種查詢條件的查詢結果,查詢條件的設置如表1所示。
由于查詢條件中車速下限和車速上限都設為0,所以查詢結果中會包含堵車的位置,但查詢條件中車輛數(shù)量下限設為1000輛,則會過濾掉輕微堵車的位置,但過濾不掉嚴重堵車的位置。由于經(jīng)緯度精確到小數(shù)點后的位數(shù)設為4位比設為3位更能精準地進行位置標定,查詢條件1的查詢結果如圖8(a)所示,可以為大多數(shù)車輛停車的位置和嚴重堵車的位置提供參考。因為擁堵與緩行是相伴發(fā)生的,只要查詢緩行的位置就能得到擁堵的位置,為了不包含停車的位置,把查詢條件的速度區(qū)間設為[1,10]。經(jīng)緯度精確到小數(shù)點后的位數(shù)設為3位比設為4位和車輛數(shù)量下限設1000比設為100更能獲得長期緩行的位置,并過濾掉隨機緩行的位置。查詢條件7的查詢結果如圖8(b)所示。為查詢高速行駛的車輛,速度區(qū)間設為[101,200],車輛數(shù)量下限均設為1次。通過比較得出車輛數(shù)量少的情況下,經(jīng)緯度精確到小數(shù)點后4位更能精準地標定所處位置,查詢條件12查詢結果如圖8(c)所示。
5 ?討論與分析
首先要從雜亂無章的交通大數(shù)據(jù)中選取所需要的數(shù)據(jù),然后插入事先設置好的表格中,本文通過人工操作數(shù)據(jù)庫管理系統(tǒng)(Microsoft SQL Server2008)來完成,并沒有開發(fā)實現(xiàn)這樣功能的用戶端,這將成為以后的工作任務。
本系統(tǒng)通過設置十進制經(jīng)緯度坐標精確到小數(shù)點后的位數(shù)和查詢條件(經(jīng)緯度范圍、車速區(qū)間和車輛數(shù)量下限),通過設置不同的查詢條件組合可得到不同的查詢結果。十進制經(jīng)緯度坐標采用四舍五入的方式保留3位小數(shù),可統(tǒng)計以標注位置為中心的長寬為100M的正方形區(qū)域的車輛情況,十進制經(jīng)緯度坐標保留4位小數(shù),可統(tǒng)計以標注位置為中心的長寬為10M的正方形區(qū)域的車輛情況。從應用實驗中可以看到,當符合查詢條件的車輛數(shù)量比較少時,精確到小數(shù)點后的4位比精確到小數(shù)點后3位更能在地圖上精準地標定位置,當符合查詢條件的車輛數(shù)量比較多時,則精確到小數(shù)點后的3位更合適。
6 ?結 ?論
本研究采用Asp.net技術,構建基于Web的交通車速區(qū)間位置查詢系統(tǒng),交通大數(shù)據(jù)通過整理后儲存在后臺服務器數(shù)據(jù)庫中,為統(tǒng)一修改更新GPS數(shù)據(jù)提供方便。車速區(qū)間位置查詢頁面提供十進制經(jīng)緯度坐標精確到小數(shù)點后的位數(shù)和查詢條件(經(jīng)緯度范圍、車速區(qū)間和車輛數(shù)量下限)的設置,不同的設置組合可獲得不同的查詢結果,并能在百度地圖上直觀地顯示出來,該系統(tǒng)能為道路建設、規(guī)劃和改造提供重要的依據(jù)。
參考文獻:
[1] 丁俊發(fā).改革開放40年中國物流業(yè)發(fā)展與展望 [J].中國流通經(jīng)濟,2018,32(4):3-17.
[2] 劉民權.全球化中的中國中小企業(yè):交通基礎設施的作用 [J].金融研究,2018(4):121-137.
[3] 趙福全,劉斐齊,劉宗巍,等.中國汽車產(chǎn)業(yè)低碳化評價指標體系研究 [J].中國工程科學,2018,20(1):104-112.
[4] 喬英俊,紀雪洪.發(fā)展共享汽車推動汽車強國建設 [J].中國工程科學,2018,20(1):120-126.
[5] 張?zhí)烊?大數(shù)據(jù)背景下的交通模型發(fā)展思考 [J].城市交通,2016,14(2):22-28.
[6] Leung H,F(xiàn)aouzi N E E, Kurian A. Intelligent transportation system (ITS)[J]. Information Fusion,2011,12(1):2-3.
[7] Cui Z ,Zhang S ,Henrickson K C ,et al. New progress of drivenet:an e-science transportation platform for data sharing,visualization, modeling,and analysis [C]// Smart Cities Conference. IEEE,2016.
[8] [美]特羅爾森.C# NET3.5高級程序設計(第4版) [M].北京:人民郵電出版社,2009:580-682.
[9] [美]麥克唐納,茲普茲塔.ASP.NET3.5高級程序設計(第2版) [M].北京:人民郵電出版社,2008:528-571.
[10] [美]尼爾森.Server2008寶典 [M].北京:清華大學出版社,2011:459-515.
作者簡介:艾虎(1974-),男,漢族,江西弋陽人,副教授,博士,研究方向:信息技術、大數(shù)據(jù)。