動(dòng)態(tài)瓦片地圖的獲取方法與裝置制造方法
【專利摘要】本發(fā)明公開一種動(dòng)態(tài)瓦片地圖的獲取方法與裝置,用于動(dòng)態(tài)交通瓦片快速切圖,并快速發(fā)布。該動(dòng)態(tài)瓦片地圖的獲取方法包括:對(duì)實(shí)時(shí)獲取的動(dòng)態(tài)交通信息進(jìn)行數(shù)據(jù)解析,得到每條道路的動(dòng)態(tài)交通狀況信息;定時(shí)根據(jù)所述動(dòng)態(tài)交通狀況信息確定交通狀況發(fā)生更新的區(qū)域;對(duì)所述交通狀況發(fā)生更新的區(qū)域進(jìn)行切圖,并以二進(jìn)制流的方式將所述切圖緩存到內(nèi)存中,生成動(dòng)態(tài)瓦片地圖。采用本發(fā)明的技術(shù)方案,在時(shí)時(shí)獲得TMC動(dòng)態(tài)交通數(shù)據(jù)后,可以快速切圖,并以二進(jìn)制流的方式緩存,減少磁盤碎片,提高訪問效率。
【專利說明】動(dòng)態(tài)瓦片地圖的獲取方法與裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及動(dòng)態(tài)交通地圖領(lǐng)域,更具體的,涉及一種動(dòng)態(tài)瓦片地圖的獲取方法與 裝直。
【背景技術(shù)】
[0002] 目前各大地圖網(wǎng)站都提供動(dòng)態(tài)交通服務(wù)信息,其本質(zhì)是后臺(tái)服務(wù)根據(jù)動(dòng)態(tài)交通信 息切成瓦片,提供圖片動(dòng)態(tài)交通瓦片(png類型圖片)信息。動(dòng)態(tài)交通信息從動(dòng)態(tài)交通信息 服務(wù)提供商處獲得,以http協(xié)議提供動(dòng)態(tài)交通XML格式的TMC數(shù)據(jù)。再根據(jù)獲得的TMC數(shù) 據(jù)進(jìn)行解析后根據(jù)解析結(jié)果獲得每條道路上的交通狀況信息進(jìn)行動(dòng)態(tài)切圖,把道路交通狀 況以不同的顏色繪制成圖片。根據(jù)客戶端請(qǐng)求的范圍從服務(wù)器獲得需要的瓦片信息在客戶 端拼接成地圖。提供瓦片的服務(wù)以http協(xié)議的方式提供。
[0003] 可以發(fā)現(xiàn)上述各大地圖網(wǎng)站提供動(dòng)態(tài)交通服務(wù)信息存在的問題是:更新速度比較 慢。
[0004] 因此,現(xiàn)有技術(shù)存在更新不及時(shí)的問題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明提供一種動(dòng)態(tài)瓦片地圖的獲取方法與裝置,用于解決現(xiàn)有技術(shù)存在更新不 及時(shí)的問題。
[0006] 為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供一種動(dòng)態(tài)瓦片地圖的獲取方法與 裝置,并采用如下技術(shù)方案:
[0007] 動(dòng)態(tài)瓦片地圖的獲取方法包括:對(duì)實(shí)時(shí)獲取的動(dòng)態(tài)交通信息進(jìn)行數(shù)據(jù)解析,得到 每條道路的動(dòng)態(tài)交通狀況信息;定時(shí)根據(jù)所述動(dòng)態(tài)交通狀況信息確定交通狀況發(fā)生更新的 區(qū)域;對(duì)所述交通狀況發(fā)生更新的區(qū)域進(jìn)行切圖,并以二進(jìn)制流的方式將所述切圖緩存到 內(nèi)存中,生成動(dòng)態(tài)瓦片地圖。
[0008] 進(jìn)一步地,所述對(duì)實(shí)時(shí)獲取的動(dòng)態(tài)交通信息進(jìn)行數(shù)據(jù)解析包括:通過共享服務(wù)池 對(duì)所述實(shí)時(shí)獲取的動(dòng)態(tài)交通信息進(jìn)行存儲(chǔ);采用多進(jìn)程與多線程的方式將所述動(dòng)態(tài)交通信 息從所述服務(wù)池中供給所述數(shù)據(jù)解析。
[0009] 進(jìn)一步地,所述定時(shí)根據(jù)所述動(dòng)態(tài)交通狀況信息確定交通狀況發(fā)生更新的區(qū)域包 括:定時(shí)將所述動(dòng)態(tài)交通狀況信息與上一次獲取的動(dòng)態(tài)交通狀況信息進(jìn)行對(duì)比,并得出對(duì) 比結(jié)果;根據(jù)所述對(duì)比結(jié)果確定所述交通狀況發(fā)生更新的區(qū)域。
[0010] 進(jìn)一步地,所述對(duì)所述交通狀況發(fā)生更新的區(qū)域進(jìn)行切圖包括:計(jì)算所述發(fā)生更 新的區(qū)域內(nèi)需要繪制地圖的數(shù)量;按照所述數(shù)量繪制地圖并將每塊地圖切成預(yù)設(shè)塊數(shù);以 及將所述預(yù)設(shè)塊數(shù)的地圖轉(zhuǎn)換為預(yù)設(shè)的格式。
[0011] 進(jìn)一步地,在所述以二進(jìn)制流的方式將所述切圖緩存到內(nèi)存中之后,還包括:直接 從所述內(nèi)存中以二進(jìn)制流的方式將所述切圖返回給發(fā)起請(qǐng)求的用戶。
[0012] 根據(jù)本發(fā)明的另外一個(gè)方面,提供一種動(dòng)態(tài)瓦片地圖的獲取裝置,并采用如下技 術(shù)方案:
[0013] 動(dòng)態(tài)瓦片地圖的獲取裝置包括:數(shù)據(jù)解析模塊,用于對(duì)實(shí)時(shí)獲取的動(dòng)態(tài)交通信息 進(jìn)行數(shù)據(jù)解析,得到每條道路的動(dòng)態(tài)交通狀況信息;確定模塊,用于定時(shí)根據(jù)所述動(dòng)態(tài)交通 狀況信息確定交通狀況發(fā)生更新的區(qū)域;切圖模塊,用于對(duì)所述交通狀況發(fā)生更新的區(qū)域 進(jìn)行切圖,并以二進(jìn)制流的方式將所述切圖緩存到內(nèi)存中,生成動(dòng)態(tài)瓦片地圖。
[0014] 進(jìn)一步地,所述數(shù)據(jù)解析模塊包括:存儲(chǔ)模塊,用于通過共享服務(wù)池對(duì)所述實(shí)時(shí)獲 取的動(dòng)態(tài)交通信息進(jìn)行存儲(chǔ);供給模塊,用于采用多進(jìn)程與多線程的方式將所述動(dòng)態(tài)交通 信息從所述服務(wù)池中供給所述數(shù)據(jù)解析。
[0015] 進(jìn)一步地,所述確定模塊包括:對(duì)比模塊,用于定時(shí)將所述動(dòng)態(tài)交通狀況信息與上 一次獲取的動(dòng)態(tài)交通狀況信息進(jìn)行對(duì)比,并得出對(duì)比結(jié)果;確定子模塊,用于根據(jù)所述對(duì)比 結(jié)果確定所述交通狀況發(fā)生更新的區(qū)域。
[0016] 進(jìn)一步地,所述切圖模塊包括:計(jì)算模塊,用于計(jì)算所述發(fā)生更新的區(qū)域內(nèi)需要繪 制地圖的數(shù)量;切圖子模塊,用于按照所述數(shù)量繪制地圖并將每塊地圖切成預(yù)設(shè)塊數(shù);以 及轉(zhuǎn)換模塊,用于將所述預(yù)設(shè)塊數(shù)的地圖轉(zhuǎn)換為預(yù)設(shè)的格式。
[0017] 進(jìn)一步地,獲取裝置還包括:返回模塊,用于直接從所述內(nèi)存中以二進(jìn)制流的方式 將所述切圖返回給發(fā)起請(qǐng)求的用戶。
[0018] 本發(fā)明通過時(shí)時(shí)獲取動(dòng)態(tài)交通信息,實(shí)現(xiàn)動(dòng)態(tài)瓦片地圖的快速更新,同時(shí)以二進(jìn) 制流的方式將切圖緩存到內(nèi)存中,減少快速更新對(duì)磁盤的損害。
【專利附圖】
【附圖說明】
[0019] 附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí) 施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0020] 圖1表示本發(fā)明實(shí)施例一所述的動(dòng)態(tài)瓦片地圖的獲取方法的流程圖;
[0021] 圖2表示本發(fā)明實(shí)施例一所述的TMC數(shù)據(jù)獲取方法流程圖;
[0022] 圖3表不本發(fā)明實(shí)施例一所述的用戶獲取切圖與瓦片的流程圖;
[0023] 圖4表示本發(fā)明實(shí)施例一所述的切圖服務(wù)的方法流程圖;
[0024] 圖5表示本發(fā)明實(shí)施例一所述的切圖功能調(diào)用示意圖;以及
[0025] 圖6表示本發(fā)明實(shí)施例二所述的動(dòng)態(tài)瓦片地圖的獲取裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0026] 附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí) 施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0027] 圖1表示本發(fā)明實(shí)施例一所述的動(dòng)態(tài)瓦片地圖的獲取方法的流程圖。
[0028] 參見圖1所示,動(dòng)態(tài)瓦片地圖的獲取方法包括:
[0029] S101 :對(duì)實(shí)時(shí)獲取的動(dòng)態(tài)交通信息進(jìn)行數(shù)據(jù)解析,得到每條道路的動(dòng)態(tài)交通狀況 信息;
[0030] S103 :定時(shí)根據(jù)所述動(dòng)態(tài)交通狀況信息確定交通狀況發(fā)生更新的區(qū)域;
[0031] S105:對(duì)所述交通狀況發(fā)生更新的區(qū)域進(jìn)行切圖,并以二進(jìn)制流的方式將所述切 圖緩存到內(nèi)存中,生成動(dòng)態(tài)瓦片地圖。
[0032] 在步驟S101中,動(dòng)態(tài)交通信息來自于動(dòng)態(tài)交通信息服務(wù)提供商,與之前定時(shí)到動(dòng) 態(tài)交通信息服務(wù)提供商處獲取動(dòng)態(tài)交通信息不同的時(shí),本發(fā)明時(shí)時(shí)從動(dòng)態(tài)交通信息服務(wù)提 供商處獲取動(dòng)態(tài)交通信息,即TMC (Traffic Message Channel,實(shí)時(shí)交通信息)數(shù)據(jù)。對(duì) TMC數(shù)據(jù)進(jìn)行解析,獲得動(dòng)態(tài)交通信息與道路LINK關(guān)系,即每條道路的動(dòng)態(tài)交通狀況信息, 將每條道路的動(dòng)態(tài)交通狀況信息緩存到服務(wù)器中。在步驟S103中,按照一定的時(shí)間間隔將 每條道路的動(dòng)態(tài)交通狀況信息與上一時(shí)段的每條道路的動(dòng)態(tài)交通狀況信息進(jìn)行比對(duì),對(duì)動(dòng) 態(tài)交通狀況信息發(fā)送變化的區(qū)域進(jìn)行更新。在步驟S105中,根據(jù)交通狀況信息發(fā)生更新的 區(qū)域,按照提前劃分的切圖服務(wù)負(fù)責(zé)的區(qū)域進(jìn)行切圖。根據(jù)切圖結(jié)果,直接以二進(jìn)制流的方 式對(duì)瓦片進(jìn)行緩存。
[0033] 在本發(fā)明的上述實(shí)施例中,時(shí)時(shí)獲取動(dòng)態(tài)交通信息的做法使得動(dòng)態(tài)交通瓦片地圖 可以及時(shí)得到更新,對(duì)于快速更新的交通狀況信息,采用快速切圖的方法對(duì)更新的區(qū)域進(jìn) 行切圖,并以二進(jìn)制流的方式緩存,由于TMC數(shù)據(jù)更新較快,而且讀取也比較快,放入內(nèi)存 可以提高訪問速度和更新效率。采用緩存的方式也是基于同樣的原因,即圖片數(shù)量多,更新 頻率比較快,如果寫磁盤會(huì)生成很多磁盤碎片。同時(shí)對(duì)磁盤損壞比較嚴(yán)重而且有的操作系 統(tǒng)對(duì)文件個(gè)數(shù)有限制,因此采用二進(jìn)制的形式緩存到內(nèi)存中可以克服上述問題。
[0034] 優(yōu)選地,所述對(duì)實(shí)時(shí)獲取的動(dòng)態(tài)交通信息進(jìn)行數(shù)據(jù)解析包括:通過共享服務(wù)池對(duì) 所述實(shí)時(shí)獲取的動(dòng)態(tài)交通信息進(jìn)行存儲(chǔ);采用多進(jìn)程與多線程的方式將所述動(dòng)態(tài)交通信息 從所述服務(wù)池中供給所述數(shù)據(jù)解析。
[0035] 圖2表示本發(fā)明實(shí)施例一所述的TMC數(shù)據(jù)獲取方法流程圖。
[0036] 參見圖2所示,獲取TMC數(shù)據(jù)以服務(wù)池的方式提供,在圖2中,采用多進(jìn)程和多線 程結(jié)合的方式,在步驟S20啟動(dòng)獲取TMC數(shù)據(jù)啟動(dòng)服務(wù)中,加載緩存與定時(shí)獲取兩進(jìn)程同時(shí) 進(jìn)行,即定時(shí)器同時(shí)啟動(dòng)獲取地址url請(qǐng)求緩存隊(duì)列以及通知獲取TMC數(shù)據(jù)兩個(gè)進(jìn)程,在加 載緩存進(jìn)程中,獲取服務(wù)器中TMC的url請(qǐng)求隊(duì)列,得到緩存列隊(duì),在步驟S202服務(wù)池中, 得到緩存隊(duì)列與通知TMC數(shù)據(jù),獲取TMC數(shù)據(jù)的服務(wù)啟動(dòng),即到TMC數(shù)據(jù)服務(wù)提供商處獲取 TMC數(shù)據(jù),然后存儲(chǔ)TMC數(shù)據(jù)到TMC數(shù)據(jù)緩存中,這樣就獲得了原始的TMC數(shù)據(jù)。
[0037] 獲取TMC數(shù)據(jù)以服務(wù)池的方式提供,采用多進(jìn)程與多線程結(jié)合的方式,提高獲取 速度與效率,保證數(shù)據(jù)的時(shí)時(shí)性。
[0038] 圖3表不本發(fā)明實(shí)施例一所述的用戶獲取切圖與瓦片的流程圖。
[0039] 在圖3中,對(duì)本實(shí)施例中的用戶獲取切圖與瓦片的流程給予了更詳盡的闡述,同 樣是采用多進(jìn)程與多線程相結(jié)合的方式。
[0040] 參見圖3所示,瓦片獲取服務(wù)API接口、瓦片啟動(dòng)服務(wù)與得到TMC數(shù)據(jù)同時(shí)開啟。
[0041] 步驟4b,為得到TMC數(shù)據(jù)后進(jìn)入得到瓦片服務(wù)。
[0042] 得到瓦片服務(wù)執(zhí)行:
[0043] 步驟7b,返回瓦片至瓦片獲取服務(wù)接口。
[0044] 步驟8a :保存瓦片至瓦片池。
[0045] 步驟9:更新動(dòng)態(tài)瓦片標(biāo)志至城市分塊緩存和動(dòng)態(tài)瓦片標(biāo)志緩存。
[0046] 步驟3b :判斷瓦片是否存在,若存在,進(jìn)入城市分塊緩存和動(dòng)態(tài)瓦片標(biāo)志緩存。
[0047] 步驟5b :切9*16 (256*256)的瓦片,當(dāng)然,也可以按照其他尺寸進(jìn)行切圖。
[0048] 在切片服務(wù)池執(zhí)行切片命令后執(zhí)行:
[0049] 步驟6 :返回圖片流至分塊瓦片管理服務(wù)與得到瓦片服務(wù)。
[0050] 進(jìn)入分塊瓦片管理服務(wù)后執(zhí)行:
[0051] 步驟4a :時(shí)間戳變化,刷新緩存狀態(tài)為默認(rèn)值。
[0052] 步驟7a :保存瓦片流至瓦片池。
[0053] 步驟8b :更新城市分塊緩存狀態(tài),然后進(jìn)入城市分塊緩存和動(dòng)態(tài)瓦片標(biāo)志緩存。
[0054] 瓦片啟動(dòng)服務(wù)首先開啟加載有瓦片的索引以及加載城市分塊索引,加載城市分塊 索引得到城市分塊緩存和動(dòng)態(tài)瓦片標(biāo)志緩存,由此進(jìn)入:
[0055] 步驟lb,得到未切分塊標(biāo)志和分塊范圍,啟動(dòng)定時(shí)切片。
[0056] 步驟3b,通知切圖進(jìn)入分塊瓦片管理服務(wù)。
[0057] 在瓦片獲取服務(wù)API接口進(jìn)程中按如下步驟進(jìn)行:
[0058] 步驟la :判斷是否為空瓦片,若不為空瓦片,進(jìn)入有瓦片的索引。
[0059] 步驟2a :向分塊瓦片管理服務(wù)發(fā)通知。
[0060] 步驟2b :得到瓦片進(jìn)入得到瓦片服務(wù)。
[0061] 在上述技術(shù)方案中,通過定時(shí)刷新緩存狀態(tài),并對(duì)更新的區(qū)域進(jìn)行切圖服務(wù),提供 快速更新的地圖瓦片數(shù)據(jù)。
[0062] 優(yōu)選地,所述對(duì)所述交通狀況發(fā)生更新的區(qū)域進(jìn)行切圖包括:計(jì)算所述發(fā)生更新 的區(qū)域內(nèi)需要繪制地圖的數(shù)量;按照所述數(shù)量繪制地圖并將每塊地圖切成預(yù)設(shè)塊數(shù);以及 將所述預(yù)設(shè)塊數(shù)的地圖轉(zhuǎn)換為預(yù)設(shè)的格式。
[0063] 圖4表示本發(fā)明實(shí)施例一所述的切圖服務(wù)的方法流程圖。
[0064] 參見圖4所示,切圖服務(wù)的方法可以通過如下步驟進(jìn)行:
[0065] 步驟40 :數(shù)據(jù)準(zhǔn)備;
[0066] 該數(shù)據(jù)即為從數(shù)據(jù)服務(wù)提供商處提供的原始動(dòng)態(tài)交通信息數(shù)據(jù)。
[0067] 步驟41 :定時(shí)器啟動(dòng)切片;
[0068] 步驟42 :得到TMC數(shù)據(jù),更新線路狀態(tài);
[0069] 步驟43 :得到全國TMC數(shù)據(jù);
[0070] 步驟44 :順序讀取傳入的每條TMC數(shù)據(jù);
[0071] 步驟45 :根據(jù)每條TMC數(shù)據(jù)刷新位置狀態(tài)表;
[0072] 步驟46 :根據(jù)位置狀態(tài)數(shù)據(jù)更新對(duì)應(yīng)的線路狀態(tài);
[0073] 步驟47 :根據(jù)線路變化繪制實(shí)時(shí)交通圖;
[0074] 步驟48 :得到指定范圍的線路;
[0075] 步驟49 :計(jì)算此范圍內(nèi)有多少塊需要繪制的地圖;
[0076] 步驟50 :按照繪制規(guī)則每塊地圖;
[0077] 步驟51 :將每塊地圖切成16張;
[0078] 步驟52 :分別將16張地圖轉(zhuǎn)為PNG格式;
[0079] 步驟53 :將PNG格式地圖存入緩存池。
[0080] 該實(shí)施例給出切圖的具體步驟,體現(xiàn)切圖服務(wù)的高效性,同時(shí),瓦片與TMC數(shù)據(jù)全 部以內(nèi)存的形式進(jìn)行存儲(chǔ),保證服務(wù)的高效訪問和快速更新。
[0081] 在該實(shí)施例中,應(yīng)用到切圖功能的調(diào)用實(shí)現(xiàn),圖5表示本發(fā)明實(shí)施例一所述的切 圖功能調(diào)用示意圖。參見圖5所示,通過使用JNI59 (Java Native Interface。它允許 Java代碼和其他語言寫的代碼進(jìn)行交互)調(diào)用系統(tǒng)的SO靜態(tài)庫58,獲得用戶系統(tǒng)需要的滿 足一定規(guī)范的JAVA類對(duì)象。
[0082] 采用JNI調(diào)用S0靜態(tài)庫,可以利用C++的高效性實(shí)現(xiàn)引擎的計(jì)算服務(wù),同時(shí)利用 java的JNI技術(shù)實(shí)現(xiàn)java與S0的交互,使前臺(tái)應(yīng)用可以夸平臺(tái)。
[0083] 優(yōu)選地,在所述以二進(jìn)制流的方式將所述切圖緩存到內(nèi)存中之后,還包括:直接從 所述內(nèi)存中以二進(jìn)制流的方式將所述切圖返回給發(fā)起請(qǐng)求的用戶。
[0084] 用戶通過行列號(hào)已經(jīng)顯示級(jí)別請(qǐng)求圖片時(shí)直接從內(nèi)存中獲得圖片的二進(jìn)制流返 回給用戶,可以提高用戶訪問效率,在客戶端直接顯示即可。
[0085] 圖6表示本發(fā)明實(shí)施例二所述的動(dòng)態(tài)瓦片地圖的獲取裝置結(jié)構(gòu)示意圖。
[0086] 動(dòng)態(tài)瓦片地圖的獲取裝置包括:數(shù)據(jù)解析模塊60,用于對(duì)實(shí)時(shí)獲取的動(dòng)態(tài)交通信 息進(jìn)行數(shù)據(jù)解析,得到每條道路的動(dòng)態(tài)交通狀況信息;確定模塊62,用于定時(shí)根據(jù)所述動(dòng) 態(tài)交通狀況信息確定交通狀況發(fā)生更新的區(qū)域;切圖模塊64,用于對(duì)所述交通狀況發(fā)生更 新的區(qū)域進(jìn)行切圖,并以二進(jìn)制流的方式將所述切圖緩存到內(nèi)存中,生成動(dòng)態(tài)瓦片地圖。 [0087] 可選地,所述數(shù)據(jù)解析模塊60包括:存儲(chǔ)模塊(圖中未示),用于通過共享服務(wù)池 對(duì)所述實(shí)時(shí)獲取的動(dòng)態(tài)交通信息進(jìn)行存儲(chǔ);供給模塊(圖中未示),用于采用多進(jìn)程與多線 程的方式將所述動(dòng)態(tài)交通信息從所述服務(wù)池中供給所述數(shù)據(jù)解析。
[0088] 可選地,所述確定模塊62包括:對(duì)比模塊(圖中未示),用于定時(shí)將所述動(dòng)態(tài)交通 狀況信息與上一次獲取的動(dòng)態(tài)交通狀況信息進(jìn)行對(duì)比,并得出對(duì)比結(jié)果;確定子模塊(圖中 未示),用于根據(jù)所述對(duì)比結(jié)果確定所述交通狀況發(fā)生更新的區(qū)域。
[0089] 可選地,所述切圖模塊64包括:計(jì)算模塊(圖中未示),用于計(jì)算所述發(fā)生更新的 區(qū)域內(nèi)需要繪制地圖的數(shù)量;切圖子模塊(圖中未示),用于按照所述數(shù)量繪制地圖并將每 塊地圖切成預(yù)設(shè)塊數(shù);以及轉(zhuǎn)換模塊(圖中未示),用于將所述預(yù)設(shè)塊數(shù)的地圖轉(zhuǎn)換為預(yù)設(shè) 的格式。
[0090] 可選地,獲取裝置(圖中未示)還包括:返回模塊(圖中未示),用于直接從所述內(nèi)存 中以二進(jìn)制流的方式將所述切圖返回給發(fā)起請(qǐng)求的用戶。
[0091] 本發(fā)明通過時(shí)時(shí)獲取動(dòng)態(tài)交通信息,實(shí)現(xiàn)動(dòng)態(tài)瓦片地圖的快速更新,同時(shí)以二進(jìn) 制流的方式將切圖緩存到內(nèi)存中,減少快速更新對(duì)磁盤的損害。
【權(quán)利要求】
1. 一種動(dòng)態(tài)瓦片地圖的獲取方法,其特征在于,包括: 對(duì)實(shí)時(shí)獲取的動(dòng)態(tài)交通信息進(jìn)行數(shù)據(jù)解析,得到每條道路的動(dòng)態(tài)交通狀況信息; 定時(shí)根據(jù)所述動(dòng)態(tài)交通狀況信息確定交通狀況發(fā)生更新的區(qū)域; 對(duì)所述交通狀況發(fā)生更新的區(qū)域進(jìn)行切圖,并以二進(jìn)制流的方式將所述切圖緩存到內(nèi) 存中,生成動(dòng)態(tài)瓦片地圖。
2. 如權(quán)利要求1所述的獲取方法,其特征在于,所述對(duì)實(shí)時(shí)獲取的動(dòng)態(tài)交通信息進(jìn)行 數(shù)據(jù)解析包括: 通過共享服務(wù)池對(duì)所述實(shí)時(shí)獲取的動(dòng)態(tài)交通信息進(jìn)行存儲(chǔ); 采用多進(jìn)程與多線程的方式將所述動(dòng)態(tài)交通信息從所述服務(wù)池中供給所述數(shù)據(jù)解析。
3. 如權(quán)利要求1所述的獲取方法,其特征在于,所述定時(shí)根據(jù)所述動(dòng)態(tài)交通狀況信息 確定交通狀況發(fā)生更新的區(qū)域包括: 定時(shí)將所述動(dòng)態(tài)交通狀況信息與上一次獲取的動(dòng)態(tài)交通狀況信息進(jìn)行對(duì)比,并得出對(duì) 比結(jié)果; 根據(jù)所述對(duì)比結(jié)果確定所述交通狀況發(fā)生更新的區(qū)域。
4. 如權(quán)利要求1或3所述的獲取方法,其特征在于,所述對(duì)所述交通狀況發(fā)生更新的區(qū) 域進(jìn)行切圖包括: 計(jì)算所述發(fā)生更新的區(qū)域內(nèi)需要繪制地圖的數(shù)量; 按照所述數(shù)量繪制地圖并將每塊地圖切成預(yù)設(shè)塊數(shù);以及 將所述預(yù)設(shè)塊數(shù)的地圖轉(zhuǎn)換為預(yù)設(shè)的格式。
5. 如權(quán)利要求1所述的獲取方法,其特征在于,在所述以二進(jìn)制流的方式將所述切圖 緩存到內(nèi)存中之后,還包括: 直接從所述內(nèi)存中以二進(jìn)制流的方式將所述切圖返回給發(fā)起請(qǐng)求的用戶。
6. -種動(dòng)態(tài)瓦片地圖的獲取裝置,其特征在于,包括: 數(shù)據(jù)解析模塊,用于對(duì)實(shí)時(shí)獲取的動(dòng)態(tài)交通信息進(jìn)行數(shù)據(jù)解析,得到每條道路的動(dòng)態(tài) 交通狀況信息; 確定模塊,用于定時(shí)根據(jù)所述動(dòng)態(tài)交通狀況信息確定交通狀況發(fā)生更新的區(qū)域; 切圖模塊,用于對(duì)所述交通狀況發(fā)生更新的區(qū)域進(jìn)行切圖,并以二進(jìn)制流的方式將所 述切圖緩存到內(nèi)存中,生成動(dòng)態(tài)瓦片地圖。
7. 如權(quán)利要求6所述的獲取裝置,其特征在于,所述數(shù)據(jù)解析模塊包括: 存儲(chǔ)模塊,用于通過共享服務(wù)池對(duì)所述實(shí)時(shí)獲取的動(dòng)態(tài)交通信息進(jìn)行存儲(chǔ); 供給模塊,用于采用多進(jìn)程與多線程的方式將所述動(dòng)態(tài)交通信息從所述服務(wù)池中供給 所述數(shù)據(jù)解析。
8. 如權(quán)利要求6所述的獲取裝置,其特征在于,所述確定模塊包括: 對(duì)比模塊,用于定時(shí)將所述動(dòng)態(tài)交通狀況信息與上一次獲取的動(dòng)態(tài)交通狀況信息進(jìn)行 對(duì)比,并得出對(duì)比結(jié)果; 確定子模塊,用于根據(jù)所述對(duì)比結(jié)果確定所述交通狀況發(fā)生更新的區(qū)域。
9. 如權(quán)利要求6或8所述的獲取裝置,其特征在于,所述切圖模塊包括: 計(jì)算模塊,用于計(jì)算所述發(fā)生更新的區(qū)域內(nèi)需要繪制地圖的數(shù)量; 切圖子模塊,用于按照所述數(shù)量繪制地圖并將每塊地圖切成預(yù)設(shè)塊數(shù);以及 轉(zhuǎn)換模塊,用于將所述預(yù)設(shè)塊數(shù)的地圖轉(zhuǎn)換為預(yù)設(shè)的格式。
10.如權(quán)利要求6所述的獲取裝置,其特征在于,還包括: 返回模塊,用于直接從所述內(nèi)存中以二進(jìn)制流的方式將所述切圖返回給發(fā)起請(qǐng)求的用 戶。
【文檔編號(hào)】G06F17/30GK104142935SQ201310164554
【公開日】2014年11月12日 申請(qǐng)日期:2013年5月7日 優(yōu)先權(quán)日:2013年5月7日
【發(fā)明者】王鵬 申請(qǐng)人:北京四維圖新科技股份有限公司