黃夢(mèng)龍
(1.福建省基礎(chǔ)地理信息中心,福建 福州 350003)
天地圖·福建作為國(guó)家天地圖的一個(gè)省級(jí)節(jié)點(diǎn),通過(guò)近幾年的建設(shè),提供的地理信息越來(lái)越豐富。將實(shí)時(shí)路況信息集成到天地圖·福建中,可以進(jìn)一步豐富地圖的應(yīng)用。通過(guò)與實(shí)時(shí)路況信息采集公司合作,筆者對(duì)實(shí)時(shí)路況信息采集及在天地圖·福建中進(jìn)行集成的相關(guān)技術(shù)進(jìn)行了研究,設(shè)計(jì)開(kāi)發(fā)了實(shí)時(shí)路況服務(wù)及天地圖·福建的實(shí)時(shí)路況展示系統(tǒng)。
路況信息可以用文字、廣播的方式描述,但是在地圖上展示更為直觀[1]。目前在地圖上展示路況的方式有多種:一種是根據(jù)道路的暢通情況,用各種類(lèi)型的車(chē)輛圖標(biāo)等,以不同速度沿道路移動(dòng),在擁擠的地方移動(dòng)速度慢,在暢通的地方移動(dòng)速度快,該方法對(duì)車(chē)輛模擬的速度不好控制,不能很好地區(qū)分道路的擁擠程度,適用于地圖顯示比例尺較大的情況;另一種是采用不同的顏色表示道路的擁擠程度,如紅色表示擁擠、黃色表示比較擁擠、綠色表示暢通等,這種方法比較直觀,是目前比較通用的方法。
為了便于與電子地圖的底圖集成,可以考慮采用Web地圖服務(wù)(WMS服務(wù))的方式[2],將道路按照擁擠程度,用不同的符號(hào)或顏色繪制,并在底圖上疊加展示。與一般地圖服務(wù)不同的是,一般的地圖服務(wù)是靜態(tài)的,而路況信息是不斷變化的,需要實(shí)時(shí)繪制并刷新。另一方面,考慮到路況信息的采集是有一定的時(shí)間間隔的,路況在交通流量大的繁華市區(qū)變化較快,而在其他路段,路況的變化并不是很頻繁,可以借鑒瓦片地圖服務(wù)(WMTS)的思想[3,4],將路況地圖服務(wù)以瓦片服務(wù)的方式提供,以實(shí)現(xiàn)路況地圖的緩存,提高服務(wù)的性能?;谏鲜鏊悸罚疚脑O(shè)計(jì)了實(shí)時(shí)路況瓦片地圖服務(wù),實(shí)現(xiàn)了路況信息的發(fā)布。
路況服務(wù)實(shí)現(xiàn)路況信息的采集、入庫(kù)與處理,并接收客戶(hù)端請(qǐng)求參數(shù),根據(jù)參數(shù)生成路況地圖瓦片,返回給客戶(hù)端。
1.2.1 服務(wù)操作
實(shí)時(shí)路況服務(wù)設(shè)計(jì)為瓦片地圖服務(wù),提供GetTrafficTile和GetCapabilities 2個(gè)操作。
1)GetTrafficTile操作。獲取實(shí)時(shí)路況地圖的瓦片,操作的參數(shù)和返回結(jié)果如表1所示。
表1 GetTrafficTile操作參數(shù)及返回結(jié)果
2)GetCapabilities操作。用于獲取服務(wù)的描述信息,以方便服務(wù)的使用者。該操作不需要參數(shù),返回結(jié)果為以XML格式描述的實(shí)時(shí)路況服務(wù)的相關(guān)信息,包括能夠提供路況信息的城市列表及每個(gè)城市實(shí)時(shí)路況瓦片服務(wù)的坐標(biāo)范圍、坐標(biāo)原點(diǎn)、瓦片的大小、瓦片級(jí)別、各級(jí)別的分辨率等。
1.2.2 服務(wù)內(nèi)部實(shí)現(xiàn)
服務(wù)內(nèi)部實(shí)現(xiàn)包括路況信息接收、處理和路況服務(wù)提供。采用數(shù)據(jù)路況信息數(shù)據(jù)庫(kù)、路網(wǎng)數(shù)據(jù)庫(kù)和路況瓦片庫(kù)存儲(chǔ)相關(guān)信息,如圖1所示。
路況信息接收、處理部分利用運(yùn)行于后臺(tái)的數(shù)據(jù)采集處理程序?qū)崿F(xiàn),用于獲取每個(gè)路段的路況,將路況信息更新到路況數(shù)據(jù)庫(kù)中,同時(shí)記錄下每個(gè)路段路況變化情況。路況信息由實(shí)時(shí)路況信息采集公司提供,按一定的時(shí)間間隔,更新每個(gè)路段的路況信息。路段用唯一的編號(hào)表示,并用不同的字母分別表示該路段的通行情況,如擁擠、緩行、暢通等。
圖1 實(shí)時(shí)路況服務(wù)內(nèi)部實(shí)現(xiàn)流程圖
路況服務(wù)部分用于接收客戶(hù)端的請(qǐng)求,解析請(qǐng)求參數(shù),并返回請(qǐng)求的結(jié)果。GetCapabilities操作的請(qǐng)求處理比較簡(jiǎn)單,只需要返回一段靜態(tài)的XML文本描述服務(wù)相關(guān)的元數(shù)據(jù)信息即可。GetTrafficTile請(qǐng)求的處理較為復(fù)雜,需要根據(jù)請(qǐng)求的城市代碼、瓦片級(jí)別、行號(hào)與列號(hào)計(jì)算出瓦片的坐標(biāo)范圍,查詢(xún)?cè)摲秶鷥?nèi)的路段的路況信息,繪制在地圖瓦片上,再返回給客戶(hù)端。
實(shí)時(shí)路況服務(wù)用于提供各種基于電子地圖的路況信息展示,為廣大公眾出行提供參考。要求對(duì)承載路況信息的道路數(shù)據(jù)進(jìn)行處理,使之與天地圖的基礎(chǔ)底圖疊加時(shí)能夠準(zhǔn)確套合。而且電子地圖的用戶(hù)數(shù)量往往較大,這就要求服務(wù)具有較強(qiáng)的處理能力,能滿足大量用戶(hù)并發(fā)請(qǐng)求的需要。針對(duì)這些問(wèn)題,實(shí)時(shí)路況服務(wù)在實(shí)現(xiàn)時(shí)主要從以下幾個(gè)方面進(jìn)行了處理。
1.3.1 路網(wǎng)數(shù)據(jù)處理
由于不同的電子地圖提供商所用的數(shù)據(jù)存在一定的偏差,經(jīng)過(guò)偏移等處理,坐標(biāo)差異進(jìn)一步加大。為了保證實(shí)時(shí)路況服務(wù)瓦片地圖與天地圖·福建的底圖道路準(zhǔn)確套合,在服務(wù)實(shí)現(xiàn)時(shí),以路況信息公司的路網(wǎng)數(shù)據(jù)及道路分段信息為參考,對(duì)天地圖·福建的路網(wǎng)數(shù)據(jù)進(jìn)行改造,制作適用于實(shí)時(shí)路況服務(wù)的路網(wǎng)數(shù)據(jù)。
1.3.2 面向?qū)崟r(shí)路況信息繪制的路網(wǎng)索引
采用瓦片地圖服務(wù)的方式提供實(shí)時(shí)路況服務(wù)信息,瓦片的實(shí)時(shí)渲染速度變得尤其重要。為了在地圖瓦片渲染時(shí)能夠快速找到并讀取各瓦片需要繪制的路段信息,除了建立路網(wǎng)的空間索引外,還設(shè)計(jì)了瓦片–路段索引,記錄了經(jīng)過(guò)各級(jí)別的每一個(gè)瓦片的所有路段的幾何信息、路段編號(hào)等,從而能夠加快路段信息的查找速度和提高渲染速度。
1.3.3 實(shí)時(shí)路況瓦片地圖緩存
瓦片地圖服務(wù)通過(guò)對(duì)電子地圖預(yù)先切片,實(shí)現(xiàn)對(duì)地圖的緩存,提高了地圖服務(wù)的響應(yīng)能力以及在客戶(hù)端顯示的效率。由于路況是不斷變化的,因此路況地圖瓦片需要實(shí)時(shí)繪制??紤]到路況信息是按一定的時(shí)間間隔采集和提供的,且在多數(shù)地方路況的變化較緩慢,因此在多用戶(hù)訪問(wèn)的情況下,可以采用一定的緩存策略,盡量減少路況瓦片的實(shí)時(shí)繪制。
路況瓦片地圖服務(wù)的緩存策略主要有以下2個(gè)方面:
1)根據(jù)路況的時(shí)間段是否變化,決定是否重繪路況地圖瓦片。路況信息采集時(shí),以一定時(shí)間間隔(如dt分鐘)將全天24 h劃分為若干個(gè)時(shí)間片,用時(shí)間段編號(hào) tid表示,則tid=3 600/dt。在同一天內(nèi)只要tid沒(méi)有變化,則路況是相同的。若客戶(hù)端請(qǐng)求瓦片的時(shí)間點(diǎn)的tid與當(dāng)前瓦片的tid相同,則無(wú)需重新繪制,返回前面繪制的瓦片即可。
2)根據(jù)經(jīng)過(guò)瓦片路段的路況變化情況決定是否重繪路況地圖瓦片。在路況信息接收和處理時(shí),對(duì)路段當(dāng)前時(shí)間片的路況與之前時(shí)間片的路況進(jìn)行比較,并記錄其變化情況。若請(qǐng)求的路況瓦片所覆蓋的路段的路況都未發(fā)生變化,則該瓦片也不需要重繪,只需要返回之前繪制的瓦片即可。
基于實(shí)時(shí)路況服務(wù),開(kāi)發(fā)了實(shí)時(shí)路況展示系統(tǒng)。系統(tǒng)的地圖底圖采用天地圖·福建的矢量地圖,開(kāi)發(fā)采用的地圖腳本庫(kù)為開(kāi)源GIS腳本庫(kù)OpenLayers。通過(guò)對(duì)OpenLayers提供的WMTS瓦片地圖圖層類(lèi)[5]進(jìn)行擴(kuò)展,開(kāi)發(fā)了實(shí)時(shí)路況的瓦片圖層類(lèi),用于請(qǐng)求和展示實(shí)時(shí)路況瓦片地圖。
系統(tǒng)實(shí)現(xiàn)了地圖瀏覽、實(shí)時(shí)路況信息展示、市區(qū)主干道查詢(xún)定位、當(dāng)前繁忙路段查詢(xún)定位等功能,能夠按一定的時(shí)間間隔刷新路況瓦片圖層和當(dāng)前的擁堵路段列表。系統(tǒng)實(shí)現(xiàn)情況如圖2所示。
本文設(shè)計(jì)開(kāi)發(fā)了實(shí)時(shí)路況服務(wù),對(duì)實(shí)時(shí)路況服務(wù)開(kāi)發(fā)中涉及的相關(guān)技術(shù)進(jìn)行了探討,并基于該服務(wù)開(kāi)發(fā)了天地圖·福建實(shí)時(shí)路況系統(tǒng)。除了路況之外,一些突發(fā)性交通障礙信息,如車(chē)輛事故、道路臨時(shí)施工封閉等,也是影響公眾出行的重要交通因素[6]。在后續(xù)的服務(wù)開(kāi)發(fā)中,需要增加交通突發(fā)性事件信息的查詢(xún)。立交橋各層之間的連通和重疊關(guān)系對(duì)導(dǎo)航也起著重要的作用[7],而實(shí)時(shí)路況的路網(wǎng)數(shù)據(jù)及路網(wǎng)索引沒(méi)有考慮道路的上下層關(guān)系和連通關(guān)系,在高架橋、環(huán)島等需要體現(xiàn)這些關(guān)系的地方,路況瓦片繪制時(shí)并沒(méi)有體現(xiàn)出來(lái),這也是需要進(jìn)一步改進(jìn)的地方。
圖2 天地圖·福建實(shí)時(shí)路況系統(tǒng)示意圖
[1]張亮,孫海東,賀勇.車(chē)載動(dòng)態(tài)實(shí)時(shí)可視化交通信息服務(wù)系統(tǒng)[J].中南公路工程,2004,29(1):120-122
[2]WMS Tile Caching[EB/OL].http://wiki.osgeo.org/wiki/WMS_Tile_Caching, 2006
[3]Tile Map Service Specification[EB/OL].http://wiki.osgeo.org/wiki/WMS_Tile_Caching, 2006
[4]OpenGIS Web Map Tile Service Implementation Standard,Version 1.0.0.Open Geospatial Consortium Inc.2010.4
[5]OpenLayers API Document[EB/OL].http://dev.openlayers.org/,2012
[6]商蕾,王繼峰,栗紅強(qiáng).智能交通綜合信息服務(wù)系統(tǒng)建設(shè)研究[J].交通與計(jì)算機(jī),2005,23(6):32-34
[7]成燕輝,謝露蓉.車(chē)載導(dǎo)航立交橋的三維數(shù)據(jù)模型研究[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2005,30(12):1 111-1 114