国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      矢量地圖繪制方法和裝置制造方法

      文檔序號:6548752閱讀:392來源:國知局
      矢量地圖繪制方法和裝置制造方法
      【專利摘要】本發(fā)明公開了一種矢量地圖繪制方法和裝置,所述方法包括:在顯示屏幕上顯示矢量地圖后,若接收到鼠標(biāo)拖拽指令則周期性地刷新矢量地圖;在一個周期內(nèi)刷新矢量地圖的過程為:根據(jù)當(dāng)前鼠標(biāo)坐標(biāo)確定出待顯示區(qū)域的經(jīng)緯度范圍;并從存儲于第一緩存中的預(yù)繪區(qū)域的矢量地圖中提取出待顯示區(qū)域的矢量地圖后,覆蓋第二緩存中的矢量地圖,并根據(jù)第二緩存中的矢量地圖進行顯示;在接收到鼠標(biāo)拖拽結(jié)束指令后,根據(jù)當(dāng)前顯示的區(qū)域的經(jīng)緯度范圍,重新確定預(yù)繪區(qū)域的經(jīng)緯度范圍,并繪制重新確定的預(yù)繪區(qū)域的矢量地圖后更新第一緩存中的矢量地圖。本發(fā)明的技術(shù)方案中,當(dāng)鼠標(biāo)拖曳地圖時,對預(yù)繪區(qū)域的矢量地圖進行提取,即可連續(xù)、不閃爍地顯示矢量地圖。
      【專利說明】矢量地圖繪制方法和裝置

      【技術(shù)領(lǐng)域】
      [0001] 本發(fā)明涉及軟件技術(shù),尤其涉及一種矢量地圖繪制方法和裝置。

      【背景技術(shù)】
      [0002] 矢量地圖已經(jīng)廣泛應(yīng)用于GIS(Geographic Information System,地理信息系統(tǒng))、 定位系統(tǒng)、導(dǎo)航系統(tǒng)等系統(tǒng)中。
      [0003] 當(dāng)用戶利用鼠標(biāo)拖拽顯示在屏幕上的矢量地圖時,根據(jù)用戶鼠標(biāo)的拖拽軌跡,繪 制矢量地圖的一種方法包括:根據(jù)鼠標(biāo)在屏幕中拖拽(即按住左鍵到松開左鍵)的位移,以 及屏幕與矢量地圖之間的比例尺,確定出矢量地圖的經(jīng)緯度變化量;根據(jù)確定出的經(jīng)緯度 變化量和拖拽前的矢量地圖的經(jīng)緯度范圍,確定出拖拽后的矢量地圖的經(jīng)緯度范圍;根據(jù) 確定出的經(jīng)緯度范圍內(nèi)的地圖數(shù)據(jù),繪制出拖拽后的矢量地圖并進行顯示。
      [0004] 例如屏幕上顯示如圖1所示的矢量地圖,用戶按住鼠標(biāo)左鍵向屏幕右下方(如圖 1中的箭頭線所示)拖拽該矢量地圖,在用戶松開鼠標(biāo)左鍵之前,屏幕上方和左方的區(qū)域暫 不顯示矢量地圖;用戶松開鼠標(biāo)后,通常需要等待一段時間(例如幾毫秒)才顯示拖拽后的 矢量地圖;容易導(dǎo)致用戶產(chǎn)生屏幕停頓、閃爍或者不流暢的感覺,用戶的體驗不佳。
      [0005] 根據(jù)用戶鼠標(biāo)的拖拽軌跡,繪制矢量地圖的另一種方法為:當(dāng)鼠標(biāo)處于拖拽過程 中(即按住左鍵不釋放),周期性地繪制矢量地圖。具體地,本周期開始時,根據(jù)鼠標(biāo)在屏幕 中的位置,以及屏幕與矢量地圖之間的比例尺,確定出本周期的矢量地圖的經(jīng)緯度變化量; 根據(jù)確定出的本周期的經(jīng)緯度變化量和上個周期的矢量地圖的經(jīng)緯度范圍,確定出本周期 的矢量地圖的經(jīng)緯度范圍;根據(jù)本周期的矢量地圖的經(jīng)緯度范圍內(nèi)的地圖數(shù)據(jù),繪制出本 周期的矢量地圖并進行顯示。顯然,本方法需要頻繁刷新矢量地圖中的各元素,很容易導(dǎo) 致矢量地圖產(chǎn)生閃爍。此外,本方法運算量較大,當(dāng)系統(tǒng)資源緊張時,無法及時繪制出每個 周期的矢量地圖,也很容易導(dǎo)致用戶產(chǎn)生屏幕停頓、閃爍或者不流暢的感覺,用戶的體驗不 佳。
      [0006] 因此,有必要提供一種在鼠標(biāo)拖拽過程中,可連續(xù)、無閃爍地顯示矢量地圖的矢量 地圖繪制方法,以提高用戶的體驗。


      【發(fā)明內(nèi)容】

      [0007] 本發(fā)明實施例提供了一種矢量地圖繪制方法和裝置,以實現(xiàn)在屏幕上拖拽矢量地 圖的過程中,連續(xù)、無閃爍的顯示矢量地圖。
      [0008] 根據(jù)本發(fā)明的一個方面,提供了一種矢量地圖繪制方法,包括:
      [0009] 在顯示屏幕上顯示矢量地圖后,若接收到所述矢量地圖中的鼠標(biāo)拖拽指令,則周 期性地在顯示屏幕上刷新矢量地圖;其中,在一個周期內(nèi)刷新矢量地圖的過程為:根據(jù)當(dāng) 前鼠標(biāo)坐標(biāo)確定出待顯示區(qū)域的經(jīng)緯度范圍;并從存儲于第一緩存中的預(yù)繪區(qū)域的矢量地 圖中提取出待顯示區(qū)域的矢量地圖后,將提取出的矢量地圖覆蓋第二緩存中的矢量地圖, 并根據(jù)第二緩存中的矢量地圖在所述顯示屏幕進行顯示;
      [0010] 在接收到鼠標(biāo)拖拽結(jié)束指令后,根據(jù)所述顯示屏幕上當(dāng)前顯示的區(qū)域的經(jīng)緯度范 圍,重新確定所述預(yù)繪區(qū)域的經(jīng)緯度范圍,并繪制重新確定的預(yù)繪區(qū)域中的矢量地圖后,對 存儲于所述第一緩存中的矢量地圖進行更新。
      [0011] 較佳地,所述顯示屏幕上當(dāng)前顯示的區(qū)域具體為矩形區(qū)域。
      [0012] 較佳地,所述根據(jù)所述顯示屏幕上當(dāng)前顯示的區(qū)域的經(jīng)緯度范圍,重新確定所述 預(yù)繪區(qū)域的經(jīng)緯度范圍,具體包括:
      [0013] 根據(jù)所述顯示屏幕上當(dāng)前顯示的區(qū)域的四個頂點的經(jīng)緯度(Xl,yi)、( Xl,y2)、 (x2, y)、(x2, y2),重新確定出所述預(yù)繪區(qū)域的四個頂點的經(jīng)諱度(2x^X2, (2x^X2, 2y2-Υι)> (2χ2-Χι? 27^5^2) > (2x2-Xj? 2y2-Yj);
      [0014] 其中,Xl、x2分別表示所述當(dāng)前顯示的區(qū)域的最小經(jīng)度、最大經(jīng)度, yi、y2分別表示 所述當(dāng)前顯示的區(qū)域的最小緯度、最大緯度。
      [0015] 進一步,在所述顯示屏幕上顯示矢量地圖之前,還包括:
      [0016] 根據(jù)顯示屏幕中即將顯示矢量地圖的顯示區(qū)域的經(jīng)緯度信息,確定出預(yù)繪區(qū)域 后,繪制出預(yù)繪區(qū)域的矢量地圖;并將繪制出的預(yù)繪區(qū)域的矢量地圖存儲于第一緩存中; 將所述顯示區(qū)域的矢量地圖存儲于第二緩存中。
      [0017] 較佳地,根據(jù)當(dāng)前鼠標(biāo)坐標(biāo)確定出待顯示區(qū)域的經(jīng)緯度范圍,具體包括:
      [0018] 確定出上個周期鼠標(biāo)坐標(biāo)與當(dāng)前鼠標(biāo)坐標(biāo)所對應(yīng)的矢量地圖中的地點之間的經(jīng) 度差和諱度差;
      [0019] 將確定出的經(jīng)度差、緯度差分別作為矢量地圖在上個周期的顯示區(qū)域與本周期的 待顯示區(qū)域之間的經(jīng)度差、緯度差;
      [0020] 根據(jù)上個周期的顯示區(qū)域與本周期的待顯示區(qū)域之間的經(jīng)度差和緯度差,以及上 個周期的顯示區(qū)域的經(jīng)緯度范圍,確定出本周期的待顯示區(qū)域的經(jīng)緯度范圍。
      [0021] 根據(jù)本發(fā)明的另一個方面,還提供了一種矢量地圖繪制裝置,包括:
      [0022] 指令解析模塊,用于在接收到顯示屏幕上所顯示的矢量地圖中鼠標(biāo)拖拽指令后, 確定出所述鼠標(biāo)拖拽指令所涉及的經(jīng)緯度信息后輸出;
      [0023] 待顯示區(qū)域確定模塊,用于根據(jù)所述指令解析模塊輸出的經(jīng)緯度信息,確定出待 顯示區(qū)域的經(jīng)緯度范圍后,發(fā)送緩存更新通知;
      [0024] 緩存更新模塊,用于接收到所述緩存更新通知后,根據(jù)所述待顯示區(qū)域確定模塊 確定的所述待顯示區(qū)域的經(jīng)緯度范圍,從存儲于第一緩存中的預(yù)繪區(qū)域的矢量地圖中提取 出待顯示區(qū)域的矢量地圖后,將提取出的矢量地圖覆蓋第二緩存中的矢量地圖,并發(fā)送區(qū) 域更新通知;
      [0025] 預(yù)繪區(qū)域更新模塊,用于接收到所述區(qū)域更新通知后,根據(jù)所述顯示屏幕上當(dāng)前 顯示的區(qū)域的經(jīng)緯度范圍,重新確定所述預(yù)繪區(qū)域的經(jīng)緯度范圍,并繪制重新確定的預(yù)繪 區(qū)域中的矢量地圖后,對存儲于所述第一緩存中的矢量地圖進行更新;
      [0026] 矢量地圖顯示模塊,用于根據(jù)第二緩存中的矢量地圖在所述顯示屏幕進行顯示。
      [0027] 較佳地,所述顯示屏幕上當(dāng)前顯示的區(qū)域具體為矩形區(qū)域。
      [0028] 較佳地,所述預(yù)繪區(qū)域更新模塊具體用于根據(jù)所述顯示屏幕上當(dāng)前顯示的區(qū)域的 四個頂點的經(jīng)諱度(Xp 、(Xp y2)、(x2, yi)、(x2, yd,重新確定出所述預(yù)繪區(qū)域的四個頂 點的經(jīng)諱度(2x^X2, 2y「y2)、(2x^X2,2721)、(2X2-X! Jyfyj、(2X2-X! Jyfy);其中,Χρ χ2分別表示所述當(dāng)前顯示的區(qū)域的最小經(jīng)度、最大經(jīng)度,yi、y2分別表示所述當(dāng)前顯示的區(qū) 域的最小緯度、最大緯度。
      [0029] 進一步,所述矢量地圖繪制裝置,還包括:
      [0030] 預(yù)繪區(qū)域更新模塊還用于在所述裝置啟動時,根據(jù)顯示屏幕中即將顯示矢量地圖 的顯示區(qū)域的經(jīng)緯度信息,確定出預(yù)繪區(qū)域后,繪制出預(yù)繪區(qū)域的矢量地圖;并將繪制出的 預(yù)繪區(qū)域的矢量地圖存儲于第一緩存中;將所述顯示區(qū)域的矢量地圖存儲于第二緩存中。
      [0031] 本發(fā)明實施例的技術(shù)方案中,鼠標(biāo)在顯示屏幕上一次拖曳過程中的待顯示區(qū)域, 均落入本發(fā)明的預(yù)繪區(qū)域的范圍內(nèi);且矢量地圖繪制裝置預(yù)先繪制出預(yù)繪區(qū)域的矢量地 圖;使得鼠標(biāo)拖曳過程中,矢量地圖繪制裝置可以周期性提取出待顯示區(qū)域的矢量地圖進 行顯示;并在接收到下一個鼠標(biāo)拖拽指令之前,及時完成對第一緩存中的預(yù)繪區(qū)域的矢量 地圖的更新;從而可以使得顯示屏幕中連續(xù)、不閃爍地顯示矢量地圖,可以提高用戶的體 驗。

      【專利附圖】

      【附圖說明】
      [0032] 圖1為現(xiàn)有的矢量地圖示意圖;
      [0033] 圖2a為本發(fā)明實施例的矢量地圖繪制裝置預(yù)先繪制出預(yù)繪區(qū)域的矢量地圖存儲 在緩存中的方法的流程圖;
      [0034] 圖2b為本發(fā)明實施例的矩形的顯示區(qū)域和預(yù)繪區(qū)域的示意圖;
      [0035] 圖3a為本發(fā)明實施例的矢量地圖繪制裝置可以周期性地顯示刷新矢量地圖的方 法的流程圖;
      [0036] 圖3b、圖3c、圖3d分別為在本發(fā)明實施例的上個周期的顯示區(qū)域中,鼠標(biāo)分別進 行水平拖拽、垂直拖拽和沿矩形顯示區(qū)域?qū)蔷€拖拽的示意圖;
      [0037] 圖4為本發(fā)明實施例的矢量地圖繪制裝置更新第一緩存中繪制區(qū)域的矢量地圖 的方法的流程圖;
      [0038] 圖5為本發(fā)明實施例的矢量地圖繪制裝置的內(nèi)部結(jié)構(gòu)框架示意圖。

      【具體實施方式】
      [0039] 為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉出優(yōu)選實 施例,對本發(fā)明進一步詳細說明。然而,需要說明的是,說明書中列出的許多細節(jié)僅僅是為 了使讀者對本發(fā)明的一個或多個方面有一個透徹的理解,即便沒有這些特定的細節(jié)也可以 實現(xiàn)本發(fā)明的這些方面。
      [0040] 本申請使用的"模塊"、"系統(tǒng)"等術(shù)語旨在包括與計算機相關(guān)的實體,例如但不限 于硬件、固件、軟硬件組合、軟件或者執(zhí)行中的軟件。例如,模塊可以是,但并不僅限于:處理 器上運行的進程、處理器、對象、可執(zhí)行程序、執(zhí)行的線程、程序和/或計算機。舉例來說,計 算設(shè)備上運行的應(yīng)用程序和此計算設(shè)備都可以是模塊。一個或多個模塊可以位于執(zhí)行中的 一個進程和/或線程內(nèi)。
      [0041] 本發(fā)明的發(fā)明人考慮到,可以在緩存中預(yù)先存儲包括顯示區(qū)域在內(nèi)的整個預(yù)繪區(qū) 域的矢量地圖;例如,這個預(yù)繪區(qū)域的大小可以是顯示區(qū)域大小的9倍。當(dāng)用戶拖拽當(dāng)前顯 示的區(qū)域中的矢量地圖時,就不必臨時計算、繪制當(dāng)前顯示的區(qū)域之外的矢量地圖,而直接 從緩存的預(yù)繪區(qū)域的矢量地圖中進行提取、顯示。這樣,在矢量地圖的鼠標(biāo)拖拽過程中,就 不會出現(xiàn)因為計算量大而導(dǎo)致的矢量地圖顯示遲緩而導(dǎo)致的閃爍的問題。從而,在矢量地 圖的鼠標(biāo)拖拽過程中,給用戶的直觀感覺是,地圖被拖拽出來的部分可以連續(xù)、無閃爍地進 行顯示。
      [0042] 而且,在本次鼠標(biāo)拖曳結(jié)束后,及時重新繪制包括當(dāng)前顯示的區(qū)域在內(nèi)的整個預(yù) 繪區(qū)域的矢量地圖,并更新到緩存中,以在下一次鼠標(biāo)拖拽過程中直接進行顯示。
      [0043] 下面結(jié)合附圖詳細說明本發(fā)明的技術(shù)方案。
      [0044] 本發(fā)明實施例的矢量地圖繪制裝置(即矢量地圖繪制軟件)運行后,在顯示屏幕 上顯示矢量地圖之前,可以預(yù)先繪制出預(yù)繪區(qū)域的矢量地圖存儲在緩存中,具體流程如圖 2a所示,包括如下步驟:
      [0045] S201 :矢量地圖繪制裝置根據(jù)顯示屏幕中即將顯示矢量地圖的顯示區(qū)域的經(jīng)緯度 信息,確定出預(yù)繪區(qū)域。
      [0046] 具體地,矢量地圖繪制裝置在確定出顯示屏幕中即將顯示矢量地圖的顯示區(qū)域的 經(jīng)緯度信息后,根據(jù)顯示區(qū)域確定預(yù)繪區(qū)域。其中,預(yù)繪區(qū)域可以包括顯示區(qū)域,以及顯示 區(qū)域周邊的擴展區(qū)域。
      [0047] 通常,在顯示屏幕中顯示矢量地圖的顯示區(qū)域為矩形區(qū)域;如圖2b所示,若矩形 的顯示區(qū)域的四個頂點的經(jīng)緯度分別為( Ul,Vl)、(Ul,v2)、(u2, Vl)、(u2, v2),則可以根據(jù)顯示 區(qū)域的經(jīng)緯度信息,確定出矩形的預(yù)繪區(qū)域的四個頂點的經(jīng)緯度分別為(2Ul-u 2,2Vl-v2)、 (21^-? Jvfv)、其中,分另U表示矩形的顯示區(qū)域 的最小經(jīng)度、最大經(jīng)度,&、^分別表示矩形的顯示區(qū)域的最小緯度、最大緯度。當(dāng)然,本領(lǐng) 域技術(shù)人員也可以采用其它方法設(shè)置顯示區(qū)域與預(yù)繪區(qū)域之間的關(guān)系,比如,也可設(shè)置顯 示區(qū)域為預(yù)繪區(qū)域中央位置,顯示區(qū)域與預(yù)繪區(qū)域的面積比值為1 :n,其中,η為大于等于9 的自然數(shù)。
      [0048] S202:矢量地圖繪制裝置繪制出預(yù)繪區(qū)域的矢量地圖,并將繪制出的預(yù)繪區(qū)域的 矢量地圖存儲于第一緩存中。
      [0049] 具體地,對于已確定經(jīng)緯度范圍的預(yù)繪區(qū)域,如何繪制出預(yù)繪區(qū)域的矢量地圖可 采用現(xiàn)有技術(shù)的方法,為本領(lǐng)域技術(shù)人員所熟知,此處不再贅述。
      [0050] S203:矢量地圖繪制裝置將預(yù)繪區(qū)域中的顯示區(qū)域的矢量地圖在顯示屏幕上進行 顯不。
      [0051] 具體地,矢量地圖繪制裝置將預(yù)繪區(qū)域中的顯示區(qū)域的矢量地圖存儲于第二緩存 中,并根據(jù)第二緩存中的矢量地圖進行顯示。
      [0052] 在顯示屏幕上顯示矢量地圖后,若用戶在顯示的矢量地圖中按住鼠標(biāo)左鍵,則矢 量地圖繪制裝置確認接收到矢量地圖中的鼠標(biāo)拖拽指令;在鼠標(biāo)左鍵松開之前,矢量地圖 繪制裝置可以周期性地(比如每l/60s,即頻率60Hz)、不斷顯示刷新矢量地圖;在一個周期 內(nèi),刷新顯示矢量地圖的方法的流程如圖3a所示,包括如下步驟:
      [0053] S301 :矢量地圖繪制裝置根據(jù)當(dāng)前鼠標(biāo)坐標(biāo)確定出待顯示區(qū)域的經(jīng)緯度范圍。
      [0054] 具體地,矢量地圖繪制裝置確定出當(dāng)前鼠標(biāo)坐標(biāo)在矢量地圖中的經(jīng)緯度信息;并 根據(jù)上個周期鼠標(biāo)坐標(biāo)在矢量地圖中的經(jīng)緯度信息,確定出上個周期鼠標(biāo)坐標(biāo)與當(dāng)前鼠標(biāo) 坐標(biāo)所對應(yīng)的矢量地圖中的地點之間的經(jīng)度差和緯度差;將確定出的經(jīng)度差、緯度差分別 作為矢量地圖在上個周期的顯示區(qū)域與本周期的待顯示區(qū)域之間的經(jīng)度差、緯度差;之后, 根據(jù)上個周期的顯示區(qū)域與本周期的待顯示區(qū)域之間的經(jīng)度差和緯度差,以及上個周期的 顯示區(qū)域的經(jīng)緯度范圍,確定出本周期的待顯示區(qū)域的經(jīng)緯度范圍。其中,本周期的待顯示 區(qū)域的比例尺寸、形狀,分別與上個周期的顯示區(qū)域的比例尺寸、形狀相同。換句話說,本周 期的待顯示區(qū)域可以由上個周期的顯示區(qū)域通過位移得到,該位移與鼠標(biāo)坐標(biāo)在本周期內(nèi) 的位移相對應(yīng)。
      [0055] 以如圖2b所示的預(yù)繪區(qū)域為例,為方便描述,將預(yù)繪區(qū)域的擴展區(qū)域中的八個矩 形的子區(qū)域,分別標(biāo)記為1-8號區(qū)域。圖3b_3d分別表示鼠標(biāo)在顯示屏幕顯示矢量地圖的上 個周期的顯示區(qū)域中,分別進行水平拖拽、垂直拖拽和沿矩形的顯示區(qū)域的對角線拖拽。如 圖3b所示,若鼠標(biāo)從矢量地圖上個周期的顯示區(qū)域的右邊緣向左邊緣拖拽,則可以確定出 本周期的待顯示區(qū)域的經(jīng)緯度范圍落在上個周期的顯示區(qū)域和5號區(qū)域的經(jīng)緯度范圍內(nèi)。 如圖3c所示,若鼠標(biāo)從矢量地圖上個周期的顯示區(qū)域的上邊緣向下邊緣拖拽,則可以確定 出本周期的待顯示區(qū)域的經(jīng)緯度范圍落在上個周期的顯示區(qū)域和2號區(qū)域的經(jīng)緯度范圍 內(nèi)。如圖3d所示,若鼠標(biāo)從矢量地圖上個周期的顯示區(qū)域的右上角向左下角拖拽,則可以 確定出本周期的待顯示區(qū)域的經(jīng)緯度范圍落在上個周期的顯示區(qū)域、2號區(qū)域、3號區(qū)域和 5號區(qū)域的經(jīng)緯度范圍內(nèi)。
      [0056] S302:矢量地圖繪制裝置從存儲于第一緩存中的預(yù)繪區(qū)域的矢量地圖中提取出待 顯示區(qū)域的矢量地圖后在顯示屏幕進行顯示。
      [0057] 具體地,矢量地圖繪制裝置從存儲于第一緩存中的預(yù)繪區(qū)域的矢量地圖中,提取 出步驟S301中確定出的本周期的待顯示區(qū)域的矢量地圖后,將提取出的矢量地圖覆蓋第 二緩存中已儲存的矢量地圖,并根據(jù)第二緩存中的矢量地圖在顯示屏幕進行顯示。
      [0058] 如圖2b所示,鼠標(biāo)拖拽(例如,從按下鼠標(biāo)左鍵移動到松開鼠標(biāo)左鍵的過程)之 前的矩形的顯示區(qū)域位于矩形的預(yù)繪區(qū)域的中央;且對于預(yù)繪區(qū)域中的每個對角線,將該 對角線劃分成長度相等的三等份,位于該對角線中間的一個等份即為鼠標(biāo)拖拽之前的顯示 區(qū)域的一個對角線。而鼠標(biāo)拖拽之前的顯示區(qū)域的對角線的長度,即為鼠標(biāo)在該顯示區(qū)域 內(nèi)可以拖拽的最大距離;顯然,在一次鼠標(biāo)拖拽過程中,待顯示區(qū)域不會超出預(yù)繪區(qū)域的范 圍。
      [0059] 顯然,從上個周期的鼠標(biāo)坐標(biāo)位移到當(dāng)前鼠標(biāo)坐標(biāo)的過程中,矢量地圖繪制裝置 無需即時計算、繪制矢量地圖,直接從緩存中預(yù)繪區(qū)域的矢量地圖中提取本周期的待顯示 區(qū)域的矢量地圖進行顯示,節(jié)省了計算、繪制矢量地圖的時間,避免出現(xiàn)矢量地圖顯示遲緩 而導(dǎo)致閃爍的問題。
      [0060] 之后,矢量地圖繪制裝置進行下一個周期的刷新顯示矢量地圖。
      [0061] 當(dāng)用戶松開鼠標(biāo)左鍵時,矢量地圖繪制裝置確認接收到鼠標(biāo)拖拽結(jié)束指令,并結(jié) 束周期性地刷新顯示矢量地圖。之后,矢量地圖繪制裝置更新第一緩存中繪制區(qū)域的矢量 地圖的方法的流程如圖4所示,包括如下步驟:
      [0062] S401 :矢量地圖繪制裝置根據(jù)顯示屏幕上當(dāng)前顯示的區(qū)域的經(jīng)緯度范圍,重新確 定預(yù)繪區(qū)域的經(jīng)緯度范圍。
      [0063] 具體地,矢量地圖繪制裝置確定出顯示屏幕上當(dāng)前顯示的區(qū)域的經(jīng)緯度范圍;根 據(jù)接收到鼠標(biāo)拖曳指令之前(即周期性刷新顯示矢量地圖之前),顯示屏幕上顯示的矢量 地圖的顯示區(qū)域的經(jīng)緯度范圍,確定出當(dāng)前顯示的區(qū)域與鼠標(biāo)拖曳之前的顯示區(qū)域之間的 位移后,與鼠標(biāo)拖曳之前的繪制區(qū)域的經(jīng)緯度范圍一起重新確定出預(yù)繪區(qū)域的當(dāng)前的經(jīng)緯 度范圍。
      [0064] 例如,顯示屏幕中顯示矢量地圖中當(dāng)前顯示的區(qū)域為矩形區(qū)域,其四個頂點的經(jīng) 緯度可以分別為(Xl,yi)、(Xl,y2)、(x 2, yi)、(x2, y2);則可以重新確定出預(yù)繪區(qū)域的四個頂 點的經(jīng)諱度分別為(2x^X2, 2y「y2)、(2x^X2, 2721)、OxfxdyfyJ、(2X2-X" 2721)。其 中,Xl、x2分別表示矢量地圖中當(dāng)前顯示的區(qū)域的最小經(jīng)度、最大經(jīng)度, yi、y2分別表示矢量 地圖中當(dāng)前顯示的區(qū)域的最小緯度、最大緯度。
      [0065] S402:矢量地圖繪制裝置繪制重新確定的預(yù)繪區(qū)域中的矢量地圖后,對存儲于第 一緩存中的矢量地圖進行更新。
      [0066] 具體地,矢量地圖繪制裝置根據(jù)重新確定出的預(yù)繪區(qū)域的經(jīng)緯度范圍,繪制重新 確定出的預(yù)繪區(qū)域的矢量地圖;對于已確定經(jīng)緯度范圍的預(yù)繪區(qū)域,如何繪制出預(yù)繪區(qū)域 的矢量地圖可采用現(xiàn)有技術(shù)的方法,為本領(lǐng)域技術(shù)人員所熟知,此處不再贅述。之后,將重 新繪制的預(yù)繪區(qū)域的矢量地圖,覆蓋已存儲于第一緩存中的矢量地圖。
      [0067] 較佳地,矢量地圖繪制裝置可以將預(yù)繪區(qū)域劃分為多個子區(qū)域后,并行繪制各子 區(qū)域的矢量地圖。
      [0068] 顯然,第二緩存中儲存有顯示屏幕上當(dāng)前顯示的區(qū)域的矢量地圖,矢量地圖繪制 裝置更新第一緩存中的繪制區(qū)域的矢量地圖,對第二緩存中的數(shù)據(jù)無影響,因此不影響顯 示屏幕上當(dāng)前顯示的矢量地圖;也就是說,在矢量地圖繪制裝置更新第一緩存中的繪制區(qū) 域的矢量地圖過程中,顯示在顯示屏幕上的矢量地圖保持不變,不會產(chǎn)生閃爍。
      [0069] 在實際操作中,矢量地圖繪制裝置可以在接收到下一個鼠標(biāo)拖拽指令之前,及時 完成對第一緩存中的預(yù)繪區(qū)域的矢量地圖的更新。當(dāng)接收到下一個鼠標(biāo)拖拽指令時,矢量 地圖繪制裝置將重復(fù)步驟S301-S302、以及步驟S401-S402的流程步驟,使得顯示屏幕可以 連續(xù)、不閃爍地顯示的矢量地圖。
      [0070] 基于上述繪制矢量地圖的方法,本發(fā)明實施例的矢量地圖繪制裝置的內(nèi)部結(jié)構(gòu)框 架示意圖如圖5所示,包括:指令解析模塊501、待顯示區(qū)域確定模塊502、緩存更新模塊 503、預(yù)繪區(qū)域更新模塊504和矢量地圖顯示模塊505。
      [0071] 指令解析模塊501用于在接收到顯示屏幕上所顯示的矢量地圖中鼠標(biāo)拖拽指令 后,確定出鼠標(biāo)拖拽指令所涉及的經(jīng)緯度信息后輸出。
      [0072] 待顯示區(qū)域確定模塊502用于根據(jù)指令解析模塊501輸出的經(jīng)緯度信息,確定出 待顯示區(qū)域的經(jīng)緯度范圍后,發(fā)送緩存更新通知。
      [0073] 緩存更新模塊503用于接收到待顯示區(qū)域確定模塊502發(fā)送的緩存更新通知后, 根據(jù)待顯示區(qū)域確定模塊502確定的待顯示區(qū)域的經(jīng)緯度范圍,從存儲于第一緩存中的預(yù) 繪區(qū)域的矢量地圖中提取出待顯示區(qū)域的矢量地圖后,將提取出的矢量地圖覆蓋第二緩存 中的矢量地圖,并發(fā)送區(qū)域更新通知。
      [0074] 預(yù)繪區(qū)域更新模塊504用于在矢量地圖繪制裝置啟動時,根據(jù)顯示屏幕中即將顯 示矢量地圖的顯示區(qū)域的經(jīng)緯度信息,確定出預(yù)繪區(qū)域后,繪制出預(yù)繪區(qū)域的矢量地圖;并 將繪制出的預(yù)繪區(qū)域的矢量地圖存儲于第一緩存中;將該顯示區(qū)域的矢量地圖存儲于第 二緩存中;并且,預(yù)繪區(qū)域更新模塊504在接收到緩存更新模塊503發(fā)送的區(qū)域更新通知 后,根據(jù)顯示屏幕上當(dāng)前顯示的區(qū)域的經(jīng)緯度范圍,重新確定預(yù)繪區(qū)域的經(jīng)緯度范圍,并繪 制重新確定的預(yù)繪區(qū)域中的矢量地圖后,對存儲于第一緩存中的矢量地圖進行更新。預(yù) 繪區(qū)域更新模塊504具體用于根據(jù)顯示屏幕上當(dāng)前顯示的區(qū)域的四個頂點的經(jīng)緯度( Xl, yi)、(χι,y2)、(χ2, yi)、(χ2, yd,重新確定出預(yù)繪區(qū)域的四個頂點的經(jīng)諱度(2χι_χ2,2Υι?2)、 (2x^X2,2721)、(2Χ2-Χ! Jyryj、(2Χ2-Χ! Jyfy);其中,ΧΡΧ2 分另lj表示顯示屏幕上當(dāng)前顯 示的區(qū)域的矢量地圖的最小經(jīng)度、最大經(jīng)度,yi、y2分別表示顯示屏幕上當(dāng)前顯示的區(qū)域的 矢量地圖的最小緯度、最大緯度。
      [0075] 矢量地圖顯示模塊505用于根據(jù)第二緩存中的矢量地圖在顯示屏幕進行顯示。
      [0076] 由上述技術(shù)方案可知,鼠標(biāo)在顯示屏幕上一次拖曳過程中的待顯示區(qū)域,均落入 本發(fā)明的預(yù)繪區(qū)域的范圍內(nèi);且矢量地圖繪制裝置預(yù)先繪制出預(yù)繪區(qū)域的矢量地圖;使得 鼠標(biāo)拖曳過程中,矢量地圖繪制裝置可以周期性提取出待顯示區(qū)域的矢量地圖進行顯示; 并在接收到下一個鼠標(biāo)拖拽指令之前,及時完成對第一緩存中的預(yù)繪區(qū)域的矢量地圖的更 新;從而可以使得顯示屏幕中連續(xù)、不閃爍地顯示矢量地圖,可以提高用戶的體驗。
      [0077] 本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟是可以 通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀取存儲介質(zhì)中,如: R0M/RAM、磁碟、光盤等。
      [0078] 以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人 員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應(yīng) 視為本發(fā)明的保護范圍。
      【權(quán)利要求】
      1. 一種矢量地圖繪制方法,其特征在于,包括: 在顯示屏幕上顯示矢量地圖后,若接收到所述矢量地圖中的鼠標(biāo)拖拽指令,則周期性 地在顯示屏幕上刷新矢量地圖;其中,在一個周期內(nèi)刷新矢量地圖的過程為:根據(jù)當(dāng)前鼠 標(biāo)坐標(biāo)確定出待顯示區(qū)域的經(jīng)緯度范圍;并從存儲于第一緩存中的預(yù)繪區(qū)域的矢量地圖中 提取出待顯示區(qū)域的矢量地圖后,將提取出的矢量地圖覆蓋第二緩存中的矢量地圖,并根 據(jù)第二緩存中的矢量地圖在所述顯示屏幕進行顯示; 在接收到鼠標(biāo)拖拽結(jié)束指令后,根據(jù)所述顯示屏幕上當(dāng)前顯示的區(qū)域的經(jīng)緯度范圍, 重新確定所述預(yù)繪區(qū)域的經(jīng)緯度范圍,并繪制重新確定的預(yù)繪區(qū)域中的矢量地圖后,對存 儲于所述第一緩存中的矢量地圖進行更新。
      2. 如權(quán)利要求1所述的方法,其特征在于,所述顯示屏幕上當(dāng)前顯示的區(qū)域具體為矩 形區(qū)域。
      3. 如權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述顯示屏幕上當(dāng)前顯示的區(qū)域 的經(jīng)緯度范圍,重新確定所述預(yù)繪區(qū)域的經(jīng)緯度范圍,具體包括: 根據(jù)所述顯示屏幕上當(dāng)前顯示的區(qū)域的四個頂點的經(jīng)緯度(Xl,yi)、(Xl,y 2)、(x2, yi)、 (x2, y2),重新確定出所述預(yù)繪區(qū)域的四個頂點的經(jīng)諱度(2x^X2, Zyi、)、(2x0;^, (2x2_Xi,2yi_y2)、(2x2_Xi,2y2 _yi); 其中,Xl、x2分別表示所述當(dāng)前顯示的區(qū)域的最小經(jīng)度、最大經(jīng)度,yi、y 2分別表示所述 當(dāng)前顯示的區(qū)域的最小緯度、最大緯度。
      4. 如權(quán)利要求1-3任一所述的方法,其特征在于,在所述顯示屏幕上顯示矢量地圖之 前,還包括: 根據(jù)顯示屏幕中即將顯示矢量地圖的顯示區(qū)域的經(jīng)緯度信息,確定出預(yù)繪區(qū)域后,繪 制出預(yù)繪區(qū)域的矢量地圖;并將繪制出的預(yù)繪區(qū)域的矢量地圖存儲于第一緩存中;將所述 顯示區(qū)域的矢量地圖存儲于第二緩存中。
      5. 如權(quán)利要求1-3任一所述的方法,其特征在于,根據(jù)當(dāng)前鼠標(biāo)坐標(biāo)確定出待顯示區(qū) 域的經(jīng)緯度范圍,具體包括: 確定出上個周期鼠標(biāo)坐標(biāo)與當(dāng)前鼠標(biāo)坐標(biāo)所對應(yīng)的矢量地圖中的地點之間的經(jīng)度差 和諱度差; 將確定出的經(jīng)度差、緯度差分別作為矢量地圖在上個周期的顯示區(qū)域與本周期的待顯 示區(qū)域之間的經(jīng)度差、緯度差; 根據(jù)上個周期的顯示區(qū)域與本周期的待顯示區(qū)域之間的經(jīng)度差和緯度差,以及上個周 期的顯示區(qū)域的經(jīng)緯度范圍,確定出本周期的待顯示區(qū)域的經(jīng)緯度范圍。
      6. -種矢量地圖繪制裝置,其特征在于,包括: 指令解析模塊,用于在接收到顯示屏幕上所顯示的矢量地圖中鼠標(biāo)拖拽指令后,確定 出所述鼠標(biāo)拖拽指令所涉及的經(jīng)緯度信息后輸出; 待顯示區(qū)域確定模塊,用于根據(jù)所述指令解析模塊輸出的經(jīng)緯度信息,確定出待顯示 區(qū)域的經(jīng)緯度范圍后,發(fā)送緩存更新通知; 緩存更新模塊,用于接收到所述緩存更新通知后,根據(jù)所述待顯示區(qū)域確定模塊確定 的所述待顯示區(qū)域的經(jīng)緯度范圍,從存儲于第一緩存中的預(yù)繪區(qū)域的矢量地圖中提取出待 顯示區(qū)域的矢量地圖后,將提取出的矢量地圖覆蓋第二緩存中的矢量地圖,并發(fā)送區(qū)域更 新通知; 預(yù)繪區(qū)域更新模塊,用于接收到所述區(qū)域更新通知后,根據(jù)所述顯示屏幕上當(dāng)前顯示 的區(qū)域的經(jīng)緯度范圍,重新確定所述預(yù)繪區(qū)域的經(jīng)緯度范圍,并繪制重新確定的預(yù)繪區(qū)域 中的矢量地圖后,對存儲于所述第一緩存中的矢量地圖進行更新; 矢量地圖顯示模塊,用于根據(jù)第二緩存中的矢量地圖在所述顯示屏幕進行顯示。
      7. 如權(quán)利要求6所述的裝置,其特征在于,所述顯示屏幕上當(dāng)前顯示的區(qū)域具體為矩 形區(qū)域。
      8. 如權(quán)利要求7所述的裝置,其特征在于, 所述預(yù)繪區(qū)域更新模塊具體用于根據(jù)所述顯示屏幕上當(dāng)前顯示的區(qū)域的四個頂點的 經(jīng)諱度Up 、Up y2)、(χ2, yi)、(x2, yd,重新確定出所述預(yù)繪區(qū)域的四個頂點的經(jīng)諱度 (2Xi x2,2y^ y2)、(2χι X2,2y2 y"i)、(2x2 Xi,2y^ y2)、(2叉2 Xi,2y2 y"i);其中,Χι、叉2 么力ll表所 述當(dāng)前顯示的區(qū)域的最小經(jīng)度、最大經(jīng)度,yi、y2*別表示所述當(dāng)前顯示的區(qū)域的最小緯度、 最大緯度。
      9. 如權(quán)利要求6-8任一所述的裝置,其特征在于,還包括: 預(yù)繪區(qū)域更新模塊還用于在所述裝置啟動時,根據(jù)顯示屏幕中即將顯示矢量地圖的顯 示區(qū)域的經(jīng)緯度信息,確定出預(yù)繪區(qū)域后,繪制出預(yù)繪區(qū)域的矢量地圖;并將繪制出的預(yù)繪 區(qū)域的矢量地圖存儲于第一緩存中;將所述顯示區(qū)域的矢量地圖存儲于第二緩存中。
      【文檔編號】G06F3/0487GK104063158SQ201410247332
      【公開日】2014年9月24日 申請日期:2014年6月5日 優(yōu)先權(quán)日:2014年6月5日
      【發(fā)明者】劉紅鎖, 張家驥, 張毅, 張云英 申請人:北京東進航空科技股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1