亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種地圖轉(zhuǎn)換方法、裝置和計算設(shè)備與流程

文檔序號:12677812閱讀:260來源:國知局
一種地圖轉(zhuǎn)換方法、裝置和計算設(shè)備與流程

本發(fā)明涉及地圖數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種地圖轉(zhuǎn)換方法、裝置和計算設(shè)備。



背景技術(shù):

由于地圖展示信息的直觀性和歸納性,越來越多的開發(fā)者選擇將與地理位置相關(guān)的信息(例如商家分布信息、用戶畫像信息、氣象信息等)繪制在地圖上呈現(xiàn)給用戶。地圖上承載的信息種類繁多,數(shù)據(jù)量巨大。

墨卡托投影是將用經(jīng)緯度表示的地理位置轉(zhuǎn)化為平面坐標(biāo)進(jìn)行展示的常用方法。在展示地圖時,首先從服務(wù)器處獲取地圖數(shù)據(jù),隨后由用戶本地的CPU(中央處理器)對各經(jīng)緯度點進(jìn)行墨卡托轉(zhuǎn)換,得出各經(jīng)緯度點在屏幕可視區(qū)域的像素坐標(biāo),最后由GPU(圖形處理器)根據(jù)各點的像素坐標(biāo)來繪制地圖。用戶可以對地圖進(jìn)行交互操作,例如縮放、平移等,這時,CPU需要重新依次對各點進(jìn)行墨卡托坐標(biāo)轉(zhuǎn)換,即重新計算交互后各點的像素坐標(biāo)。由于墨卡托轉(zhuǎn)換計算的復(fù)雜性,其在現(xiàn)階段一般由CPU來計算。地圖數(shù)據(jù)量巨大,從而CPU的計算負(fù)擔(dān)很大,計算需要的時間長,會造成地圖繪制不及時以及網(wǎng)頁卡頓的問題。



技術(shù)實現(xiàn)要素:

為此,本發(fā)明提供一種地圖轉(zhuǎn)換方法、裝置和計算設(shè)備,以解決或至少緩解上面存在的問題。

根據(jù)本發(fā)明的一個方面,提供一種地圖轉(zhuǎn)換方法,在計算設(shè)備中執(zhí)行,該方法包括:獲取每個經(jīng)緯度點的第一像素坐標(biāo),根據(jù)第一像素坐標(biāo)在地圖顯示區(qū)域中繪制第一地圖,其中,第一像素坐標(biāo)為所述經(jīng)緯度點在地圖顯示區(qū)域中的坐標(biāo);接收用戶對于第一地圖的交互操作;獲取一個參考經(jīng)緯度點的第二像素坐標(biāo),第二像素坐標(biāo)為交互后所述參考經(jīng)緯度點在地圖顯示區(qū)域中的坐標(biāo);根據(jù)參考經(jīng)緯度點的第一像素坐標(biāo)、第二像素坐標(biāo)和/或第一地圖的第一縮放級別、第二縮放級別確定轉(zhuǎn)換矩陣,其中,第一縮放級別為第一地圖的縮放級別,第二縮放級別為所述第一地圖在交互后的縮放級別;根據(jù)轉(zhuǎn)換矩陣和第一像素坐標(biāo)確定第一地圖中各經(jīng)緯度點的第二像素坐標(biāo);根據(jù)各經(jīng)緯度點的第二像素坐標(biāo)在地圖顯示區(qū)域中繪制第二地圖。

可選地,在根據(jù)本發(fā)明的地圖轉(zhuǎn)換方法中,在獲取每個經(jīng)緯度點的第一像素坐標(biāo)的步驟之前,還包括:從服務(wù)器處獲取地圖中所包括的多個經(jīng)緯度點的數(shù)據(jù);將每一個經(jīng)緯度點轉(zhuǎn)化為第一像素坐標(biāo)。

可選地,在根據(jù)本發(fā)明的地圖轉(zhuǎn)換方法中,交互操作包括縮放、平移。

可選地,在根據(jù)本發(fā)明的地圖轉(zhuǎn)換方法中,轉(zhuǎn)換矩陣按照以下步驟確定:確定像素坐標(biāo)差,像素坐標(biāo)差為第二像素坐標(biāo)與第一像素坐標(biāo)之差;確定縮放級別差,縮放級別差為第二縮放級別與第一縮放級別之差;根據(jù)像素坐標(biāo)差和/或所述縮放級別差確定轉(zhuǎn)換矩陣。

可選地,在根據(jù)本發(fā)明的地圖轉(zhuǎn)換方法中,第一像素坐標(biāo)為:[x,y,z,w]T,其中,x為橫向坐標(biāo),y為縱向坐標(biāo),z、w為參數(shù);轉(zhuǎn)換矩陣為:

其中,s1為第一縮放級別,s2為第二縮放級別,△x為像素坐標(biāo)差中的橫向坐標(biāo)差,△y為像素坐標(biāo)差中的縱向坐標(biāo)差。

可選地,在根據(jù)本發(fā)明的地圖轉(zhuǎn)換方法中,z=0,w=1.0。

可選地,在根據(jù)本發(fā)明的地圖轉(zhuǎn)換方法中,確定第一地圖中各經(jīng)緯度點的第二像素坐標(biāo)的步驟由計算設(shè)備的圖形處理器來完成。

可選地,在根據(jù)本發(fā)明的地圖轉(zhuǎn)換方法中,各經(jīng)緯度點的第二像素坐標(biāo)按照以下步驟確定:將轉(zhuǎn)換矩陣傳遞至所述圖形處理器;由圖形處理器將轉(zhuǎn)換矩陣與每一個經(jīng)緯度點的第一像素坐標(biāo)相乘,得到各經(jīng)緯度點的第二像素坐標(biāo)。

根據(jù)本發(fā)明的一個方面,提供一種地圖轉(zhuǎn)換裝置,駐留于計算設(shè)備中,該裝置包括:繪制模塊,適于獲取每個經(jīng)緯度點的像素坐標(biāo),根據(jù)像素坐標(biāo)在地圖顯示區(qū)域中繪制地圖,其中,像素坐標(biāo)為所述經(jīng)緯度點在地圖顯示區(qū)域中的坐標(biāo);交互模塊,適于接收用戶對于地圖的交互操作;像素坐標(biāo)確定模塊,適于:獲取一個參考經(jīng)緯度點的第一像素坐標(biāo)、第二像素坐標(biāo),參考經(jīng)緯度點的第一像素坐標(biāo)、第二像素坐標(biāo)分別為參考經(jīng)緯度點在交互前、交互后的像素坐標(biāo);根據(jù)參考經(jīng)緯度點的第一像素坐標(biāo)、第二像素坐標(biāo)和/或地圖的第一縮放級別、第二縮放級別確定轉(zhuǎn)換矩陣,其中,第一縮放級別為交互前的地圖的縮放級別,第二縮放級別為交互后的地圖的縮放級別;根據(jù)轉(zhuǎn)換矩陣和各經(jīng)緯度點的第一像素坐標(biāo)確定地圖中各經(jīng)緯度點的第二像素坐標(biāo)。

根據(jù)本發(fā)明的一個方面,提供一種計算設(shè)備,包括:至少一個中央處理器;至少一個圖形處理器;存儲有程序指令的至少一個存儲器,所述程序指令包括如權(quán)利要求9-15中任一項所述的地圖轉(zhuǎn)換裝置;其中,中央處理器和圖形處理器被配置為適于根據(jù)存儲器中存儲的地圖轉(zhuǎn)換裝置執(zhí)行如權(quán)利要求1-8中任一項所述的地圖轉(zhuǎn)換方法。

本發(fā)明的技術(shù)方案充分考慮了地圖交互操作的特點,即對于縮放、平移等交互操作,地圖上的每個點的變化都是一致的。因此,在本發(fā)明的技術(shù)方案中,優(yōu)化了交互后對各點進(jìn)行墨卡托轉(zhuǎn)換求得像素坐標(biāo)的流程,即,不再一一計算每個經(jīng)緯度點的第二像素坐標(biāo),而是僅計算一個參考點的第二像素坐標(biāo),據(jù)此得出轉(zhuǎn)換矩陣,將轉(zhuǎn)換矩陣與各經(jīng)緯度點的第一像素坐標(biāo)相乘,從而得出所有點的第二像素坐標(biāo)。在上述流程中,由于墨卡托轉(zhuǎn)換計算的復(fù)雜性,參考點的第二像素坐標(biāo)由CPU來計算。考慮到GPU的特點,除參考點之外的其他點的第二像素坐標(biāo)均可以由GPU計算完成,這大大減小了CPU的計算負(fù)擔(dān),同時也充分利用了GPU并行計算的優(yōu)勢,減少了計算時間,從而提高了地圖轉(zhuǎn)換的計算效率和繪制效率。

附圖說明

為了實現(xiàn)上述以及相關(guān)目的,本文結(jié)合下面的描述和附圖來描述某些說明性方面,這些方面指示了可以實踐本文所公開的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護(hù)的主題的范圍內(nèi)。通過結(jié)合附圖閱讀下面的詳細(xì)描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯。遍及本公開,相同的附圖標(biāo)記通常指代相同的部件或元素。

圖1示出了根據(jù)本發(fā)明一個實施例的網(wǎng)絡(luò)系統(tǒng)100的示意圖;

圖2示出了根據(jù)本發(fā)明一個實施例的計算設(shè)備200的結(jié)構(gòu)圖;

圖3示出了根據(jù)本發(fā)明一個實施例的地圖轉(zhuǎn)換裝置300的結(jié)構(gòu)圖;

圖4示出了根據(jù)本發(fā)明另一個實施例的地圖轉(zhuǎn)換裝置300的結(jié)構(gòu)圖;

圖5示出了根據(jù)本發(fā)明一個實施例的地圖轉(zhuǎn)換方法500的流程圖;

圖6示出了根據(jù)本發(fā)明另一個實施例的地圖轉(zhuǎn)換方法600的流程圖;

圖7示出了方法600中服務(wù)器110、中央處理器204以及圖形處理器248之間的交互圖。

具體實施方式

下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。

圖1示出了根據(jù)本發(fā)明一個實施例的網(wǎng)絡(luò)系統(tǒng)100的示意圖。圖1所示的網(wǎng)絡(luò)系統(tǒng)100包括計算設(shè)備200和服務(wù)器110。應(yīng)當(dāng)指出,圖1中的網(wǎng)絡(luò)系統(tǒng)100僅是示例性的,在具體的實踐情況中,網(wǎng)絡(luò)系統(tǒng)100中可以有不同數(shù)量的計算設(shè)備以及服務(wù)器,多個計算設(shè)備以及服務(wù)器也可以分別部署于多個地理位置,服務(wù)器可以實現(xiàn)為單個設(shè)備也可以實現(xiàn)為集群,本發(fā)明對網(wǎng)絡(luò)系統(tǒng)中所包括的計算設(shè)備、服務(wù)器的數(shù)量以及部署細(xì)節(jié)不做限制。

計算設(shè)備200可以是諸如PC、筆記本電腦、手機(jī)、平板電腦、筆記本電腦、電視盒子、可穿戴設(shè)備等可以接入互聯(lián)網(wǎng)的設(shè)備。計算設(shè)備200可以經(jīng)由互聯(lián)網(wǎng)與服務(wù)器110建立連接,進(jìn)而能夠向服務(wù)器110發(fā)起請求,并接收服務(wù)器110返回的數(shù)據(jù)。計算設(shè)備200可以以有線的方式與服務(wù)器110建立連接,也可以通過3G、4G、WiFi、個人熱點、IEEE802.11x、藍(lán)牙等無線的方式與服務(wù)器110建立連接,本發(fā)明對計算設(shè)備200與服務(wù)器110之間的連接方式不做限制。

在網(wǎng)絡(luò)系統(tǒng)100中,計算設(shè)備200為客戶端,可以向服務(wù)器110發(fā)起獲取地圖數(shù)據(jù)的請求。地圖數(shù)據(jù)包括各點的經(jīng)緯度坐標(biāo)以及在該點處的相關(guān)信息,例如商家分布信息、用戶畫像信息等。服務(wù)器110中存儲有地圖數(shù)據(jù)(或者,服務(wù)器110連接至數(shù)據(jù)存儲裝置120,數(shù)據(jù)存儲裝置120中存儲有地圖數(shù)據(jù)),可以向客戶端提供與地理位置相關(guān)的服務(wù)。響應(yīng)于計算設(shè)備200的請求,服務(wù)器110將地圖數(shù)據(jù)發(fā)送至計算設(shè)備200。計算設(shè)備200接收到地圖數(shù)據(jù)后,在本地由CPU(Central Processing Unit,中央處理器)對地圖數(shù)據(jù)進(jìn)行處理,將原始的經(jīng)緯度位置轉(zhuǎn)化為像素坐標(biāo),并根據(jù)像素坐標(biāo)在指定區(qū)域(例如瀏覽器的可視區(qū)域)繪制地圖。這時的地圖是默認(rèn)條件下的初始地圖,一般來說,用戶會對初始地圖進(jìn)行縮放、平移等交互操作,以獲取自己需要的信息。在用戶執(zhí)行對初始地圖的交互操作后,需要重新計算各點的像素坐標(biāo)。當(dāng)然用戶也可能進(jìn)行多次交互操作,每交互一次,均需要重新計算各點的像素坐標(biāo)。由于地圖數(shù)據(jù)量巨大,CPU的計算負(fù)擔(dān)很大,計算需要的時間長,會造成地圖繪制不及時以及網(wǎng)頁卡頓的問題。因此,本發(fā)明對交互后的像素坐標(biāo)計算方法進(jìn)行了改進(jìn),使得該過程不再僅由CPU完成計算,而是由CPU和GPU(Graphics Processing Unit,圖形處理器)協(xié)作完成計算,大大減小了CPU的計算負(fù)擔(dān),同時也充分利用了GPU并行計算的優(yōu)勢,提高了GPU的使用率,減少了計算時間,從而提高了地圖轉(zhuǎn)換的計算效率和繪制效率。另外,應(yīng)當(dāng)指出,在實際應(yīng)用中,繪制地圖時除了需要將一個經(jīng)緯度坐標(biāo)轉(zhuǎn)化成像素坐標(biāo),也需要將該經(jīng)緯度坐標(biāo)處的相關(guān)信息轉(zhuǎn)化成像素坐標(biāo),這樣才能在地圖上顯示多重可視化信息。在地圖繪制中,相關(guān)信息是依附于經(jīng)緯度坐標(biāo)而存在的。將相關(guān)信息轉(zhuǎn)化成像素坐標(biāo)的過程和將經(jīng)緯度坐標(biāo)轉(zhuǎn)化為像素坐標(biāo)的過程類似,因此,在下文中,將以經(jīng)緯度坐標(biāo)轉(zhuǎn)化為像素坐標(biāo)為例,說明本發(fā)明的技術(shù)方案的具體過程。

圖2示出了根據(jù)本發(fā)明一個實施例的計算設(shè)備200的結(jié)構(gòu)圖。在基本配置202中,計算設(shè)備200典型地包括系統(tǒng)存儲器206和一個或者多個中央處理器204。存儲器總線208可以用于在中央處理器204和系統(tǒng)存儲器206之間的通信。中央處理器204是計算設(shè)備200的運算核心和控制核心,其主要功能是解釋計算機(jī)指令以及處理各種軟件中的數(shù)據(jù)。

取決于期望的配置,中央處理器204可以是任何類型的處理,包括但不限于:微處理器(μP)、微控制器(μC)、數(shù)字信息處理器(DSP)或者它們的任何組合。中央處理器204可以包括諸如一級高速緩存210和二級高速緩存212之類的一個或者多個級別的高速緩存、處理器核心214和寄存器216。示例的處理器核心214可以包括運算邏輯單元(ALU)、浮點數(shù)單元(FPU)、數(shù)字信號處理核心(DSP核心)或者它們的任何組合。示例的存儲器控制器218可以與中央處理器204一起使用,或者在一些實現(xiàn)中,存儲器控制器218可以是中央處理器204的一個內(nèi)部部分。

計算設(shè)備200還包括圖形處理器248,可以經(jīng)由一個或多個A/V端口與顯示器等外部設(shè)備通信。圖形處理器248是一種專門進(jìn)行圖像運算的微處理器,具有浮點運算、并行計算的特點,其可以迅速計算出圖形的所有像素,并在顯示器的指定位置繪制出相應(yīng)的圖形。

取決于期望的配置,系統(tǒng)存儲器206可以是任意類型的存儲器,包括但不限于:易失性存儲器(諸如RAM)、非易失性存儲器(諸如ROM、閃存等)或者它們的任何組合。系統(tǒng)存儲器206可以包括操作系統(tǒng)220、一個或者多個應(yīng)用222以及程序數(shù)據(jù)224。在一些實施方式中,應(yīng)用222可以布置為在操作系統(tǒng)上利用程序數(shù)據(jù)224進(jìn)行操作。應(yīng)用222在系統(tǒng)存儲器中體現(xiàn)為多段代碼指令,例如,應(yīng)用222可以是可執(zhí)行程序(.exe文件)或網(wǎng)頁中的一段JS代碼。中央處理器204和圖形處理器248可以執(zhí)行這些代碼指令從而實現(xiàn)應(yīng)用222所指示的功能。在本發(fā)明中,應(yīng)用222中包括地圖轉(zhuǎn)換裝置300。地圖轉(zhuǎn)換裝置300是一個由多行代碼組成的指令集合,其能夠指示CPU和GPU進(jìn)行相應(yīng)的計算、相互協(xié)作,從而實現(xiàn)高效的地圖轉(zhuǎn)換。

圖3示出了根據(jù)本發(fā)明一個實施例的地圖轉(zhuǎn)換裝置300的結(jié)構(gòu)圖。圖3是對裝置300的功能模塊的劃分。如圖3所示,裝置300包括繪制模塊310、交互模塊320和像素坐標(biāo)確定模塊330。應(yīng)當(dāng)指出,本發(fā)明的主旨在于“地圖轉(zhuǎn)換”,即當(dāng)用戶對地圖進(jìn)行交互操作后,如何快速生成新的地圖。相應(yīng)地,在以下對圖3所示的裝置300的描述中省略了一些不必要的部分(例如從服務(wù)器處獲取多個經(jīng)緯度點的數(shù)據(jù),將獲取到的經(jīng)緯度點轉(zhuǎn)化為第一像素坐標(biāo),等等),而是著重闡述基于用戶的交互操作將第一地圖轉(zhuǎn)化為第二地圖的過程。

繪制模塊310獲取每個經(jīng)緯度點的像素坐標(biāo),并根據(jù)像素坐標(biāo)在地圖顯示區(qū)域中繪制地圖。其中,像素坐標(biāo)為經(jīng)緯度點在地圖顯示區(qū)域中的坐標(biāo)。地圖顯示區(qū)域即預(yù)設(shè)的用于顯示地圖的區(qū)域,例如,地圖顯示區(qū)域可以是瀏覽器的可視區(qū)域,或是瀏覽器可視區(qū)域的一部分。地圖顯示區(qū)域可以由本領(lǐng)域技術(shù)人員根據(jù)需要自行設(shè)置,本發(fā)明對此不做限制。

繪制模塊310實現(xiàn)的是一個圖像繪制的過程,從硬件的角度來說,繪制模塊310的功能一般由計算設(shè)備的GPU來實現(xiàn),即GPU獲取每個經(jīng)緯度點的像素坐標(biāo)并存儲,根據(jù)像素坐標(biāo)在計算設(shè)備的輸出裝置的地圖顯示區(qū)域中繪制地圖。應(yīng)當(dāng)指出,繪制模塊310僅用于獲取各經(jīng)緯度點的像素坐標(biāo),并根據(jù)像素坐標(biāo)來繪制地圖,而不參與像素坐標(biāo)的計算。像素坐標(biāo)的計算由像素坐標(biāo)確定模塊330來完成,該部分將于下文中詳述。

基于用戶的交互操作,地圖顯示區(qū)域中顯示的地圖會產(chǎn)生變化,而地圖變化的本質(zhì)是各經(jīng)緯度點的像素坐標(biāo)發(fā)生了變化。為了敘述方便,下文中將繪制模塊310在某一時刻繪制出的地圖記為“第一地圖”,第一地圖中各經(jīng)緯度點的像素坐標(biāo)記為“第一像素坐標(biāo)”,第一地圖的縮放級別記為“第一縮放級別”;將用戶對第一地圖進(jìn)行交互操作后所得出的地圖記為“第二地圖”,第二地圖中各經(jīng)緯度點的像素坐標(biāo)記為“第二像素坐標(biāo)”,第二地圖的縮放級別記為“第二縮放級別”。應(yīng)當(dāng)指出,第一地圖、第二地圖僅用于表示一次交互操作前后的兩個地圖,而并不特指某個地圖,例如,第一地圖可以是初始地圖,也可以是經(jīng)過一次或多次用戶交互操作之后的地圖。另外,第一地圖、第二地圖也不是絕對的,例如,一次交互操作后所得的第二地圖也是下一次交互操作的第一地圖。

繪制模塊310獲取每個經(jīng)緯度點的第一像素坐標(biāo),根據(jù)第一像素坐標(biāo)在地圖顯示區(qū)域中繪制第一地圖。為了后續(xù)計算得出交互后的第二地圖,這里需要由像素坐標(biāo)確定模塊330記下一個參考經(jīng)緯度點的第一像素坐標(biāo)p1,以及第一縮放級別s1。參考經(jīng)緯度點由本領(lǐng)域技術(shù)人員自行指定,其原則上可以是地圖中的任意一個經(jīng)緯度點。考慮到對計算流程以及性能的優(yōu)化,本領(lǐng)域技術(shù)人員也可以采用特定的規(guī)則來指定參考經(jīng)緯度點,例如,將從服務(wù)器處獲取的第一個經(jīng)緯度點數(shù)據(jù)作為參考經(jīng)緯度點。應(yīng)當(dāng)指出,本發(fā)明對參考經(jīng)緯度點的設(shè)置不做限制??s放級別即地圖的zoomlevel,不同的zoomlevel代表地圖上不同的比例尺。第一縮放級別s1可以通過調(diào)用百度地圖開放平臺的getZoom()方法來實現(xiàn),即s1=getZoom()。當(dāng)然,除了調(diào)用getZoom()方法外,本領(lǐng)域技術(shù)人員也可以調(diào)用其他平臺的其他方法、或自行編寫代碼來實現(xiàn)縮放級別的獲取,本發(fā)明對獲取縮放級別的具體方法不做限制。

交互模塊320可以對第一地圖進(jìn)行監(jiān)聽,接收用戶對于第一地圖的交互操作。從硬件角度來說,交互模塊320的功能由計算設(shè)備的CPU來實現(xiàn)。根據(jù)一種實施例,交互操作包括縮放、平移(包括上下左右四個方向上的平移)。在其他的實施例中,交互操作還可以包括旋轉(zhuǎn)等。應(yīng)當(dāng)指出,本發(fā)明對于交互操作的具體形式不做限制,只要該交互操作對地圖中所有點帶來的變化一致即可。

在交互模塊320接收到用戶的交互操作后,像素坐標(biāo)確定模塊330首先獲取一個參考經(jīng)緯度點的第二像素坐標(biāo)。獲取參考經(jīng)緯度點的第二像素坐標(biāo),即,對參考經(jīng)緯度點的經(jīng)緯度坐標(biāo)進(jìn)行墨卡托轉(zhuǎn)換,從而得出第二像素坐標(biāo)。由于墨卡托轉(zhuǎn)換計算的復(fù)雜性,從硬件角度來說,其在現(xiàn)階段一般由計算設(shè)備的CPU來實現(xiàn)。根據(jù)一種實施例,第二像素坐標(biāo)的計算可以采用百度地圖開放平臺的pointToPixel()方法,對于參考經(jīng)緯度點a,執(zhí)行p2=pointToPixel(a)即可得出點a的第二像素坐標(biāo)p2。當(dāng)然,除了調(diào)用pointToPixel()方法外,本領(lǐng)域技術(shù)人員也可以調(diào)用其他平臺的其他方法、或自行編寫代碼來實現(xiàn)第二像素坐標(biāo)的計算,本發(fā)明對獲取參考經(jīng)緯度點的第二像素坐標(biāo)的具體方法不做限制。

像素坐標(biāo)確定模塊330可以確定交互后的第二縮放級別s2,例如可以在交互后調(diào)用getZoom()方法獲取第二縮放級別,即s2=getZoom()。該步驟從硬件角度來說,一般也由CPU來實現(xiàn)。

隨后,根據(jù)已確定的參考經(jīng)緯度點的第一像素坐標(biāo)p1、第二像素坐標(biāo)p2和/或第一縮放級別s1、第二縮放級別s2確定轉(zhuǎn)換矩陣。這里的“和/或”由用戶的具體交互操作而定。例如,若用戶僅對第一地圖進(jìn)行了平移,則根據(jù)p1、p2確定轉(zhuǎn)換矩陣即可;若用戶對第一地圖既進(jìn)行了平移,又進(jìn)行了縮放,則需要根據(jù)p1、p2、s1、s2來確定轉(zhuǎn)換矩陣。轉(zhuǎn)換矩陣的確定從硬件角度來說,一般由CPU來實現(xiàn)。

根據(jù)一種實施例,轉(zhuǎn)換矩陣可以按照以下步驟確定:首先,確定像素坐標(biāo)差,即參考經(jīng)緯度點的第二像素坐標(biāo)與第一像素坐標(biāo)之差;隨后,確定縮放級別差,即第二縮放級別與第一縮放級別之差;最后,根據(jù)像素坐標(biāo)差和縮放級別差確定轉(zhuǎn)換矩陣。應(yīng)當(dāng)指出,轉(zhuǎn)換矩陣可以有多種格式,具體采用哪種格式可以由本領(lǐng)域技術(shù)人員自行設(shè)置。例如,根據(jù)一種實施例,轉(zhuǎn)換矩陣可以是以下格式:

其中,s1、s2分別為第一縮放級別、第二縮放級別,△x為像素坐標(biāo)差中的橫向坐標(biāo)差,△y為像素坐標(biāo)差中的縱向坐標(biāo)差。

在確定轉(zhuǎn)換矩陣后,根據(jù)轉(zhuǎn)換矩陣和各點的第一像素坐標(biāo)確定第一地圖中各經(jīng)緯度點的第二像素坐標(biāo)。根據(jù)一種實施例,考慮到GPU并行計算的優(yōu)勢,該步驟由GPU來實現(xiàn)。即,CPU將轉(zhuǎn)換矩陣傳遞至GPU,由GPU將轉(zhuǎn)換矩陣與GPU中存儲的各點的第一像素坐標(biāo)向量相乘,得出各點的第二像素坐標(biāo),這樣大大減少了計算時間,從而提高了地圖轉(zhuǎn)換的效率。像素坐標(biāo)在GPU中以四維向量的格式存儲,例如,某個點q的像素坐標(biāo)為[x,y,z,w]T,其中,x,y,z分別為三維坐標(biāo)系的x、y、z軸方向上的坐標(biāo),對于平面地圖來說,z軸坐標(biāo)z=0。w為齊次坐標(biāo),主要用于方便GPU進(jìn)行向量計算。一般來說,基于GPU的浮點特性,w通常被設(shè)置為一個值為1的浮點數(shù),例如1.0,1.00等,本發(fā)明對w的具體設(shè)置不做限制。

根據(jù)一種實施例,GPU接收到轉(zhuǎn)換矩陣后,將轉(zhuǎn)換矩陣與各點的第一像素坐標(biāo)相乘,即得到每一個經(jīng)緯度點的第二像素坐標(biāo)。例如,將式(1)所示的轉(zhuǎn)換矩陣與GPU中存儲的點q的像素坐標(biāo)[x,y,0,1.0]T相乘,即可得到點q的第二像素坐標(biāo)[(s2-s1)x+△x,(s2-s1)y+△y,0,1.0]T。應(yīng)當(dāng)指出,雖然之前已計算出了參考經(jīng)緯度點的第二像素坐標(biāo),但是為了保證GPU并行計算的效率,使得GPU通過矩陣乘法計算各點的第二像素坐標(biāo)時不被中斷,GPU也可以通過矩陣與第一像素坐標(biāo)相乘的方法再次計算參考經(jīng)緯度點的第二像素坐標(biāo)。但是這樣一來,參考經(jīng)緯度點的第二像素坐標(biāo)便發(fā)生了重復(fù)計算,造成了一定的資源浪費,有時也會產(chǎn)生其他錯誤。針對該問題,一種優(yōu)選的實施方式是,將從服務(wù)器處獲取的第一個經(jīng)緯度點數(shù)據(jù)作為參考經(jīng)緯度點,在GPU通過矩陣乘法計算各點的第二像素坐標(biāo)時,直接從第二個經(jīng)緯度點開始計算,從而既避免了GPU計算第二像素坐標(biāo)時被中斷的問題,也避免了參考經(jīng)緯度點的第二像素坐標(biāo)的重復(fù)計算問題。

在確定各點的第二像素坐標(biāo)后,繪制模塊310根據(jù)各點的第二像素坐標(biāo)在地圖顯示區(qū)域中繪制第二地圖。這樣,便完成了基于一次交互操作的地圖轉(zhuǎn)換。

圖4示出了根據(jù)本發(fā)明另一個實施例的地圖轉(zhuǎn)換裝置300的結(jié)構(gòu)圖。圖4所示的裝置300是針對從服務(wù)器處獲取原始的地圖數(shù)據(jù)開始到基于用戶的交互操作進(jìn)行地圖轉(zhuǎn)換的完整的流程的模塊劃分。如圖4所示,裝置300包括繪制模塊310、交互模塊320、像素坐標(biāo)確定模塊330和地圖數(shù)據(jù)獲取模塊340。

地圖數(shù)據(jù)獲取模塊340從服務(wù)器處獲取地圖中所包括的多個經(jīng)緯度點的數(shù)據(jù)。像素坐標(biāo)確定模塊330將從服務(wù)器處獲取的經(jīng)緯度點轉(zhuǎn)化為第一像素坐標(biāo)。與交互后確定各點的第二像素坐標(biāo)的過程由CPU和GPU合作實現(xiàn)不同,這里像素坐標(biāo)確定模塊330將從服務(wù)器處獲取到的經(jīng)緯度點轉(zhuǎn)化為第一像素坐標(biāo)的過程完全是由計算設(shè)備的CPU實現(xiàn)的。

繪制模塊310根據(jù)第一像素坐標(biāo)在地圖顯示區(qū)域中繪制第一地圖。交互模塊320接收用戶對于第一地圖的交互操作,基于該交互操作,像素坐標(biāo)確定模塊330計算各經(jīng)緯度點的第二像素坐標(biāo),繪制模塊310根據(jù)各點的第二像素坐標(biāo)在地圖顯示區(qū)域中繪制第二地圖。交互操作后的地圖轉(zhuǎn)換過程與前述圖3所示的裝置300相同,此處不再贅述。

圖5示出了根據(jù)本發(fā)明一個實施例的地圖轉(zhuǎn)換方法500的流程圖。方法500展示的是基于用戶的交互操作將第一地圖轉(zhuǎn)化為第二地圖的過程,其可以由前述圖3所示的裝置300控制實行。如圖5所示,該方法始于步驟S510。

在步驟S510中,獲取每個經(jīng)緯度點的第一像素坐標(biāo),根據(jù)第一像素坐標(biāo)在地圖顯示區(qū)域中繪制第一地圖。該步驟的具體過程可以參考前述對繪制模塊310的描述,此處不再贅述。

隨后,在步驟S520中,接收用戶對于第一地圖的交互操作。根據(jù)一種實施例,交互操作包括縮放、平移。該步驟的具體過程可以參考前述對交互模塊320的描述,此處不再贅述。

隨后,在步驟S530中,獲取一個參考經(jīng)緯度點的第二像素坐標(biāo)。根據(jù)一種實施例,參考經(jīng)緯度點的第二像素坐標(biāo)可以通過調(diào)用pointToPixel()方法來實現(xiàn)。

隨后,在步驟S540中,根據(jù)參考經(jīng)緯度點的第一像素坐標(biāo)、第二像素坐標(biāo)和/或第一地圖的第一縮放級別、第二縮放級別確定轉(zhuǎn)換矩陣。根據(jù)一種實施例,轉(zhuǎn)換矩陣可以按照以下步驟確定:首先,確定像素坐標(biāo)差,即參考經(jīng)緯度點的第二像素坐標(biāo)與第一像素坐標(biāo)之差;隨后,確定縮放級別差,即第二縮放級別與第一縮放級別之差(第一縮放級別、第二縮放級別可以通過在交互前后分別調(diào)用getZoom()方法獲取);最后,根據(jù)像素坐標(biāo)差和縮放級別差確定轉(zhuǎn)換矩陣。轉(zhuǎn)換矩陣的具體格式可以由本領(lǐng)域技術(shù)人員根據(jù)實際情況自行設(shè)置,例如,轉(zhuǎn)換矩陣可以是如式(1)所示的格式。

隨后,在步驟S550中,根據(jù)轉(zhuǎn)換矩陣和第一像素坐標(biāo)確定第一地圖中各經(jīng)緯度點的第二像素坐標(biāo)。根據(jù)一種實施例,為了減少計算時間,步驟S550由計算設(shè)備的GPU實現(xiàn),即,將轉(zhuǎn)換矩陣傳遞至GPU,由GPU將轉(zhuǎn)換矩陣與每一個經(jīng)緯度點的第一像素坐標(biāo)相乘,得到各經(jīng)緯度點的第二像素坐標(biāo)。

另外,步驟S530~S550的詳細(xì)過程可以參考前述對像素坐標(biāo)確定模塊330的描述。

隨后,在步驟S560中,根據(jù)各經(jīng)緯度點的第二像素坐標(biāo)在地圖顯示區(qū)域中繪制第二地圖。

圖6示出了根據(jù)本發(fā)明另一個實施例的地圖轉(zhuǎn)換方法600的流程圖。方法600展示的是從服務(wù)器處獲取地圖數(shù)據(jù)到交互后完成地圖轉(zhuǎn)換的過程,其可以由前述圖4所示的裝置300控制實行。如圖6所示,該方法始于步驟S610。

在步驟S610中,從服務(wù)器處獲取地圖中所包括的多個經(jīng)緯度點的數(shù)據(jù)。

隨后,在步驟S620中,將每一個經(jīng)緯度點轉(zhuǎn)化為第一像素坐標(biāo)。應(yīng)當(dāng)指出,該步驟一般由計算設(shè)備的CPU來執(zhí)行。

隨后,繼續(xù)順序執(zhí)行步驟S630~S680。步驟S630~S680與圖5所示的步驟S510~S560一一對應(yīng),此處不再贅述。

圖7示出了方法600中服務(wù)器110、中央處理器204以及圖形處理器248之間的交互圖,以更明確地示出方法600中各步驟的硬件執(zhí)行主體。

如圖7所示,首先,在步驟S610中,計算設(shè)備200從服務(wù)器處獲取地圖中所包括的多個經(jīng)緯度點的數(shù)據(jù)。

隨后,在步驟S620中,由CPU 204將獲取到每一個經(jīng)緯度點轉(zhuǎn)化為第一像素坐標(biāo)。根據(jù)一種實施例,將經(jīng)緯度點轉(zhuǎn)化為第一像素坐標(biāo)可以通過調(diào)用pointToPixel()方法來實現(xiàn)。

隨后,CPU 204將所有的第一像素坐標(biāo)發(fā)送至GPU 248。隨后,在步驟S630中,GPU 248獲取到每個經(jīng)緯度點的第一像素坐標(biāo)并存儲后,根據(jù)第一像素坐標(biāo)在地圖顯示區(qū)域中繪制第一地圖。

隨后,CPU 204監(jiān)聽用戶的交互操作。在步驟S640中,CPU 204接收到用戶對于第一地圖的交互操作。交互操作可以是平移、縮放等,但不限于此,只要交互操作對地圖中所有點帶來的變化一致即可。

隨后,在步驟S650中,CPU 204獲取一個參考經(jīng)緯度點的第二像素坐標(biāo)。參考經(jīng)緯度點可以由本領(lǐng)域技術(shù)人員自行指定,本發(fā)明對參考經(jīng)緯度點的設(shè)置不做限制。根據(jù)一種實施例,參考經(jīng)緯度點的第二像素坐標(biāo)可以通過調(diào)用pointToPixel()方法來獲取。

隨后,在步驟S660中,CPU 204根據(jù)參考經(jīng)緯度點的第一像素坐標(biāo)、第二像素坐標(biāo)和/或第一地圖的第一縮放級別、第二縮放級別確定轉(zhuǎn)換矩陣。根據(jù)一種實施例,轉(zhuǎn)換矩陣可以按照以下步驟確定:首先,確定像素坐標(biāo)差,即參考經(jīng)緯度點的第二像素坐標(biāo)與第一像素坐標(biāo)之差;隨后,確定縮放級別差,即第二縮放級別與第一縮放級別之差(第一縮放級別、第二縮放級別可以通過在交互前后分別調(diào)用getZoom()方法獲取);最后,根據(jù)像素坐標(biāo)差和縮放級別差確定轉(zhuǎn)換矩陣。轉(zhuǎn)換矩陣的具體格式可以由本領(lǐng)域技術(shù)人員根據(jù)實際情況自行設(shè)置,例如,轉(zhuǎn)換矩陣可以是如式(1)所示的格式。確定了轉(zhuǎn)換矩陣后,CPU 204將轉(zhuǎn)換矩陣發(fā)送至GPU 248。

隨后,在步驟S670中,GPU 248將轉(zhuǎn)換矩陣分別與步驟S630中已存儲的每一個經(jīng)緯度點的第一像素坐標(biāo)相乘,得出各經(jīng)緯度點的第二像素坐標(biāo)。步驟S670由GPU 248來執(zhí)行,大大減小了CPU的計算負(fù)擔(dān),同時也充分利用了GPU并行計算的優(yōu)勢,減少了計算時間,從而提高了地圖轉(zhuǎn)換的計算效率。

隨后,在步驟S680中,GPU 248根據(jù)各點的第二像素坐標(biāo)在地圖顯示區(qū)域中繪制第二地圖。

當(dāng)然,用戶可能會有多次交互操作,針對每一次交互操作均需要進(jìn)行地圖的轉(zhuǎn)換。即,方法600中的步驟S640~S680可能會重復(fù)執(zhí)行多次,直到用戶得到滿足需要的地圖為止。

A6:A5所述的方法,其中,z=0,w=1.0。

A7:A1所述的方法,其中,所述確定第一地圖中各經(jīng)緯度點的第二像素坐標(biāo)的步驟由所述計算設(shè)備的圖形處理器來完成。

A8:A7所述的方法,其中,各經(jīng)緯度點的第二像素坐標(biāo)按照以下步驟確定:將轉(zhuǎn)換矩陣傳遞至所述圖形處理器;由所述圖形處理器將轉(zhuǎn)換矩陣與每一個經(jīng)緯度點的第一像素坐標(biāo)相乘,得到各經(jīng)緯度點的第二像素坐標(biāo)。

B13:B12所述的裝置,其中,所述第一像素坐標(biāo)為:[x,y,z,w]T,其中,x為橫向坐標(biāo),y為縱向坐標(biāo),z、w為參數(shù);

所述轉(zhuǎn)換矩陣為:

其中,s1為第一縮放級別,s2為第二縮放級別,△x為像素坐標(biāo)差中的橫向坐標(biāo)差,△y為像素坐標(biāo)差中的縱向坐標(biāo)差。

B14:B13所述的裝置,其中,z=0,w=1.0。

B15:B9所述的裝置,其中,所述像素坐標(biāo)確定模塊進(jìn)一步適于:

將轉(zhuǎn)換矩陣傳遞至所述計算設(shè)備的圖形處理器;

由所述圖形處理器將轉(zhuǎn)換矩陣與每一個經(jīng)緯度點的第一像素坐標(biāo)相乘,得到每一個經(jīng)緯度點的第二像素坐標(biāo)。

這里描述的各種技術(shù)可結(jié)合硬件或軟件,或者它們的組合一起實現(xiàn)。從而,本發(fā)明的方法和設(shè)備,或者本發(fā)明的方法和設(shè)備的某些方面或部分可采取嵌入有形媒介,例如軟盤、CD-ROM、硬盤驅(qū)動器或者其它任意機(jī)器可讀的存儲介質(zhì)中的程序代碼(即指令)的形式,其中當(dāng)程序被載入諸如計算機(jī)之類的機(jī)器,并被所述機(jī)器執(zhí)行時,所述機(jī)器變成實踐本發(fā)明的設(shè)備。

在程序代碼在可編程計算機(jī)上執(zhí)行的情況下,計算設(shè)備一般包括處理器、處理器可讀的存儲介質(zhì)(包括易失性和非易失性存儲器和/或存儲元件),至少一個輸入裝置,和至少一個輸出裝置。其中,存儲器被配置用于存儲程序代碼;處理器被配置用于根據(jù)該存儲器中存儲的所述程序代碼中的指令,執(zhí)行本發(fā)明的地圖轉(zhuǎn)換方法。

以示例而非限制的方式,計算機(jī)可讀介質(zhì)包括計算機(jī)存儲介質(zhì)和通信介質(zhì)。計算機(jī)可讀介質(zhì)包括計算機(jī)存儲介質(zhì)和通信介質(zhì)。計算機(jī)存儲介質(zhì)存儲諸如計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息。通信介質(zhì)一般以諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號來體現(xiàn)計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并且包括任何信息傳遞介質(zhì)。以上的任一種的組合也包括在計算機(jī)可讀介質(zhì)的范圍之內(nèi)。

在此處所提供的說明書中,算法和顯示不與任何特定計算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與本發(fā)明的示例一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。

在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下被實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。

類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。

本領(lǐng)域那些技術(shù)人員應(yīng)當(dāng)理解在本文所公開的示例中的設(shè)備的模塊或單元或組件可以布置在如該實施例中所描述的設(shè)備中,或者可替換地可以定位在與該示例中的設(shè)備不同的一個或多個設(shè)備中。前述示例中的模塊可以組合為一個模塊或者此外可以分成多個子模塊。

本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。

此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實施例的任意之一都可以以任意的組合方式來使用。

此外,所述實施例中的一些在此被描述成可以由計算機(jī)系統(tǒng)的處理器或者由執(zhí)行所述功能的其它裝置實施的方法或方法元素的組合。因此,具有用于實施所述方法或方法元素的必要指令的處理器形成用于實施該方法或方法元素的裝置。此外,裝置實施例的在此所述的元素是如下裝置的例子:該裝置用于實施由為了實施該發(fā)明的目的的元素所執(zhí)行的功能。

如在此所使用的那樣,除非另行規(guī)定,使用序數(shù)詞“第一”、“第二”、“第三”等等來描述普通對象僅僅表示涉及類似對象的不同實例,并且并不意圖暗示這樣被描述的對象必須具有時間上、空間上、排序方面或者以任意其它方式的給定順序。

盡管根據(jù)有限數(shù)量的實施例描述了本發(fā)明,但是受益于上面的描述,本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員明白,在由此描述的本發(fā)明的范圍內(nèi),可以設(shè)想其它實施例。此外,應(yīng)當(dāng)注意,本說明書中使用的語言主要是為了可讀性和教導(dǎo)的目的而選擇的,而不是為了解釋或者限定本發(fā)明的主題而選擇的。因此,在不偏離所附權(quán)利要求書的范圍和精神的情況下,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。對于本發(fā)明的范圍,對本發(fā)明所做的公開是說明性的,而非限制性的,本發(fā)明的范圍由所附權(quán)利要求書限定。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1