本發(fā)明涉及地理信息技術(shù)領(lǐng)域,更具體地說,涉及一種地圖渲染方法及裝置。
背景技術(shù):
隨著智能終端的普及,地圖產(chǎn)品在人們的生活中起著越來越重要的作用。為了帶給用戶更加逼真直接的地圖渲染效果,越來越多的地圖產(chǎn)品開始采用三維地圖渲染技術(shù)。
現(xiàn)有的三維地圖渲染技術(shù)可以渲染出鳥瞰模式三維地圖,圖1所示為鳥瞰模式三維地圖的地圖渲染效果圖。其中,圖1中的箭頭11指示智能終端的當(dāng)前位置。由圖1渲染效果可知,鳥瞰模式三維地圖存在渲染結(jié)果對用戶的代入感與用戶的實際駕車體驗之間存在一定差距的問題。
因此,提供一種地圖渲染方法及裝置,以縮小地圖渲染結(jié)果對用戶的代入感與用戶的實際駕車體驗之間的差距,是亟待解決的問題。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明提供一種地圖渲染方法及裝置,以縮小地圖渲染結(jié)果對用戶的代入感與用戶的實際駕車體驗之間的差距。
為了實現(xiàn)上述目的,本發(fā)明實施例提供的技術(shù)方案如下:
一種地圖渲染方法,包括:
獲取地圖渲染模式和地圖渲染參數(shù);
獲取終端設(shè)備的當(dāng)前位置;
根據(jù)所述地圖渲染參數(shù)和所述終端設(shè)備的當(dāng)前位置,獲取與所述地圖渲染模式對應(yīng)的地圖數(shù)據(jù);
將獲取到的所述地圖數(shù)據(jù)按照所述地圖渲染模式進行渲染。
優(yōu)選的,所述獲取地圖渲染模式具體包括:
接收地圖渲染請求,所述地圖渲染請求中攜帶地圖渲染模式;
或者,
讀取預(yù)先設(shè)置的地圖渲染模式。
優(yōu)選的,所述地圖渲染參數(shù)至少包括地圖比例尺、終端設(shè)備屏幕的分辨率和像素密度,所述根據(jù)所述地圖渲染參數(shù)和所述終端設(shè)備的當(dāng)前位置,獲取與所述地圖渲染模式對應(yīng)的地圖數(shù)據(jù)具體包括:
根據(jù)所述地圖比例尺、所述終端設(shè)備屏幕的分辨率和像素密度,獲取所述終端設(shè)備屏幕顯示的地圖的地理參數(shù);
根據(jù)所述地圖的地理參數(shù)和所述終端設(shè)備的當(dāng)前位置,獲取與所述地圖渲染模式對應(yīng)的地圖數(shù)據(jù)。
優(yōu)選的,所述根據(jù)所述地圖比例尺、所述終端設(shè)備屏幕的分辨率和像素密度,獲取所述終端設(shè)備屏幕顯示的地圖的地理參數(shù)具體包括:
利用所述地圖比例尺和所述終端設(shè)備屏幕的像素密度,得到比例尺系數(shù);
根據(jù)所述終端設(shè)備屏幕的分辨率和所述比例尺系數(shù),得到所述終端設(shè)備屏幕顯示的地圖的地理參數(shù)。
優(yōu)選的,所述地圖渲染模式為第一人稱視角的三維地圖渲染模式,所述根據(jù)所述終端設(shè)備屏幕的分辨率和所述比例尺系數(shù),得到所述終端設(shè)備屏幕顯示的地圖的地理參數(shù)具體包括:
根據(jù)所述終端設(shè)備屏幕的分辨率中的水平像素值和所述比例尺系數(shù),得到所述終端設(shè)備屏幕顯示的地圖的水平地理長度;
獲取預(yù)先設(shè)置的所述終端設(shè)備屏幕顯示的地圖的垂直地理長度,所述水平地理長度和所述垂直地理長度為所述終端設(shè)備屏幕顯示的地圖的地理參數(shù)。
優(yōu)選的,所述終端設(shè)備的當(dāng)前位置包括經(jīng)度坐標和緯度坐標,所述根據(jù)所述地圖的地理參數(shù)和所述終端設(shè)備的當(dāng)前位置,獲取與所述地圖渲染模式對應(yīng)的地圖數(shù)據(jù)具體包括:
根據(jù)所述終端設(shè)備的當(dāng)前位置中的經(jīng)度坐標和所述地圖的水平地理長度,得到所述終端設(shè)備顯示的地圖在水平方向的最小經(jīng)度坐標和最大經(jīng)度坐標;
將所述終端設(shè)備的當(dāng)前位置中的緯度坐標確定為所述終端設(shè)備顯示的地圖在垂直方向的最小緯度坐標;
將所述最小緯度坐標平移所述垂直地理長度,得到所述終端設(shè)備顯示的地圖在垂直方向的最大緯度坐標;
獲取地理坐標位置落入由所述最大經(jīng)度坐標、最大緯度坐標、最小經(jīng)度坐標和最小緯度坐標構(gòu)成的地理范圍內(nèi)的地圖數(shù)據(jù)。
優(yōu)選的,所述將獲取到的所述地圖數(shù)據(jù)按照所述地圖渲染模式進行渲染具體包括:
根據(jù)比例尺系數(shù)及所述地圖渲染模式對應(yīng)的視角、地圖旋轉(zhuǎn)角度,將所述地圖數(shù)據(jù)從經(jīng)緯度坐標系變換為所述地圖渲染模式下的慣性坐標系的地圖數(shù)據(jù),所述慣性坐標系的坐標原點為所述終端設(shè)備的當(dāng)前位置;
以相機空間坐標系的任意一個坐標作為所述慣性坐標系新的坐標原點,將所述慣性坐標系下的地圖數(shù)據(jù)平移到相機空間坐標系,得到相機空間坐標系下的地圖數(shù)據(jù);
將所述相機空間坐標系下的地圖數(shù)據(jù)投影到所述相機空間坐標系代表相機屏幕的坐標面,得到二維屏幕坐標系下的地圖數(shù)據(jù);
通過光柵化過程對所述二維屏幕坐標系下的地圖數(shù)據(jù)進行渲染。
優(yōu)選的,所述根據(jù)比例尺系數(shù)及所述地圖渲染模式對應(yīng)的視角、地圖旋轉(zhuǎn)角度,將所述地圖數(shù)據(jù)從經(jīng)緯度坐標系變換為所述地圖渲染模式下的慣性坐標系的地圖數(shù)據(jù)具體包括:
利用預(yù)先設(shè)定的坐標變換矩陣m1將所述地圖數(shù)據(jù)從經(jīng)緯度坐標系變換為所述地圖渲染模式下的慣性坐標系的地圖數(shù)據(jù);
其中,所述m1=mt*s1*r1;
優(yōu)選的,所述以相機空間坐標系的任意一個坐標作為所述慣性坐標系新的坐標原點,將所述慣性坐標系下的地圖數(shù)據(jù)平移到相機空間坐標系,得到相機空間坐標系下的地圖數(shù)據(jù)具體包括:
利用預(yù)先設(shè)置的平移坐標系m0將所述慣性坐標系下的地圖數(shù)據(jù)平移到相機空間坐標系,得到相機空間坐標系下的地圖數(shù)據(jù);
其中,所述
一種地圖渲染裝置,包括:
模式參數(shù)獲取單元,用于獲取地圖渲染模式和地圖渲染參數(shù);
位置獲取單元,用于獲取終端設(shè)備的當(dāng)前位置;
地圖數(shù)據(jù)獲取單元,用于根據(jù)所述地圖渲染參數(shù)和所述終端設(shè)備的當(dāng)前位置,獲取與所述地圖渲染模式對應(yīng)的地圖數(shù)據(jù);
地圖渲染單元,用于將獲取到的所述地圖數(shù)據(jù)按照所述地圖渲染模式進行渲染。
優(yōu)選的,所述地圖渲染參數(shù)至少包括地圖比例尺、終端設(shè)備屏幕的分辨率和像素密度,所述地圖數(shù)據(jù)獲取單元包括:
地理參數(shù)獲取單元,用于根據(jù)所述地圖比例尺、所述終端設(shè)備屏幕的分辨率和像素密度,獲取所述終端設(shè)備屏幕顯示的地圖的地理參數(shù);
地圖數(shù)據(jù)獲取子單元,用于根據(jù)所述地圖的地理參數(shù)和所述終端設(shè)備的當(dāng)前位置,獲取與所述地圖渲染模式對應(yīng)的地圖數(shù)據(jù)。
優(yōu)選的,所述地理參數(shù)獲取單元包括:
比例尺系數(shù)計算單元,用于利用所述地圖比例尺和所述終端設(shè)備屏幕的像素密度,得到比例尺系數(shù);
地理參數(shù)獲取子單元,用于根據(jù)所述終端設(shè)備屏幕的分辨率和所述比例尺系數(shù),得到所述終端設(shè)備屏幕顯示的地圖的地理參數(shù)。
優(yōu)選的,所述地圖渲染模式為第一人稱視角的三維地圖渲染模式,所述地理參數(shù)獲取子單元包括:
水平地理長度計算單元,用于根據(jù)所述終端設(shè)備屏幕的分辨率中的水平像素值和所述比例尺系數(shù),得到所述終端設(shè)備屏幕顯示的地圖的水平地理長度;
地理參數(shù)確定單元,用于獲取預(yù)先設(shè)置的所述終端設(shè)備屏幕顯示的地圖的垂直地理長度,所述水平地理長度和所述垂直地理長度為所述終端設(shè)備屏幕顯示的地圖的地理參數(shù)。
優(yōu)選的,所述終端設(shè)備的當(dāng)前位置包括經(jīng)度坐標和緯度坐標,所述地圖數(shù)據(jù)獲取子單元包括:
計算單元,用于根據(jù)所述終端設(shè)備的當(dāng)前位置中的經(jīng)度坐標和所述地圖的水平地理長度,得到所述終端設(shè)備顯示的地圖在水平方向的最小經(jīng)度坐標和最大經(jīng)度坐標;
確定單元,用于將所述終端設(shè)備的當(dāng)前位置中的緯度坐標確定為所述終端設(shè)備顯示的地圖在垂直方向的最小緯度坐標;
平移單元,用于將所述最小緯度坐標平移所述垂直地理長度,得到所述終端設(shè)備顯示的地圖在垂直方向的最大緯度坐標;
獲取單元,用于獲取地理坐標位置落入由所述最大經(jīng)度坐標、最大緯度坐標、最小經(jīng)度坐標和最小緯度坐標構(gòu)成的地理范圍內(nèi)的地圖數(shù)據(jù)。
優(yōu)選的,所述地圖渲染單元包括:
坐標系變換單元,用于根據(jù)比例尺系數(shù)及所述地圖渲染模式對應(yīng)的視角、地圖旋轉(zhuǎn)角度,將所述地圖數(shù)據(jù)從經(jīng)緯度坐標系變換為所述地圖渲染模式下的慣性坐標系的地圖數(shù)據(jù),所述慣性坐標系的坐標原點為所述終端設(shè)備的當(dāng)前位置;
坐標系平移單元,用于以相機空間坐標系的任意一個坐標作為所述慣性坐標系新的坐標原點,將所述慣性坐標系下的地圖數(shù)據(jù)平移到相機空間坐標系,得到相機空間坐標系下的地圖數(shù)據(jù);
投影單元,用于將所述相機空間坐標系下的地圖數(shù)據(jù)投影到所述相機空間坐標系代表相機屏幕的坐標面,得到二維屏幕坐標系下的地圖數(shù)據(jù);
光柵單元,用于通過光柵化過程對所述二維屏幕坐標系下的地圖數(shù)據(jù)進行渲染。
本申請?zhí)峁┮环N地圖渲染方法及裝置,通過獲取地圖渲染模式和地圖渲染參數(shù);獲取終端設(shè)備的當(dāng)前位置;并根據(jù)地圖渲染參數(shù)和終端設(shè)備的當(dāng)前位置,獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù);進而將獲取到的地圖數(shù)據(jù)按照地圖渲染模式進行渲染的方式,保證地圖渲染結(jié)果按照用戶需要的地圖渲染模式進行渲染,以縮小地圖渲染結(jié)果對用戶的代入感與用戶的實際駕車體驗之間的差距。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請實施例提供的一種鳥瞰模式三維地圖的地圖渲染效果圖;
圖2為本申請實施例提供的一種地圖渲染方法流程圖;
圖3為本申請實施例提供的一種根據(jù)地圖渲染參數(shù)和終端設(shè)備的當(dāng)前位置,獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù)的方法流程圖;
圖4為本申請實施例提供的一種根據(jù)地圖比例尺、終端設(shè)備屏幕的分辨率和像素密度,獲取終端設(shè)備屏幕顯示的地圖的地理參數(shù)的方法流程圖;
圖5為本申請實施例提供的一種根據(jù)終端設(shè)備屏幕的分辨率和比例尺系數(shù),得到終端設(shè)備屏幕顯示的地圖的地理參數(shù)的方法流程圖;
圖6為本申請實施例提供的一種根據(jù)地圖的地理參數(shù)和終端設(shè)備的當(dāng)前位置,獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù)的方法流程圖;
圖7為本申請實施例提供的一種根據(jù)地圖的地理參數(shù)和終端設(shè)備的當(dāng)前位置,獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù)的坐標原理圖;
圖8為本申請實施例提供的一種將獲取到的地圖數(shù)據(jù)按照地圖渲染模式進行渲染的方法流程圖;
圖9為本申請實施例提供的一種第一人稱視角模式三維地圖的地圖渲染效果圖;
圖10為本申請實施例提供的一種地圖渲染裝置的結(jié)構(gòu)示意圖;
圖11為本申請實施例提供的一種地圖數(shù)據(jù)獲取單元的詳細結(jié)構(gòu)示意圖;
圖12為本申請實施例提供的一種地理參數(shù)獲取單元的詳細結(jié)構(gòu)示意圖;
圖13為本申請實施例提供的一種地理參數(shù)獲取子單元的詳細結(jié)構(gòu)示意圖;
圖14為本申請實施例提供的一種地圖數(shù)據(jù)獲取子單元的詳細結(jié)構(gòu)示意圖;
圖15為本申請實施例提供的一種地圖渲染單元的詳細結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
圖2為本申請實施例提供的一種地圖渲染方法流程圖。
如圖2所示,該方法包括:
s201、獲取地圖渲染模式和地圖渲染參數(shù);
在實際應(yīng)用中,獲取地圖渲染模式的方法包括:
接收地圖渲染請求,地圖渲染請求中攜帶地圖渲染模式;或者,讀取預(yù)先設(shè)置的地圖渲染模式。通常情況下,電子地圖軟件可以提供給用戶多種地圖渲染模式進行選擇,比如,2d視角模式、3d視角模式,其中3d視角模式具體可以是鳥瞰模式或第一人稱視角模式,地圖渲染請求中攜帶的地圖渲染模式或者預(yù)先設(shè)置的地圖渲染模式,是用戶從電子地圖軟件提供給用戶的多種地圖渲染模式中選擇的一種,比如第一人稱視角模式。
上述獲取地圖渲染模式的具體應(yīng)用場景可以是,電子地圖軟件啟動時,讀取預(yù)先設(shè)置的地圖渲染模式;使用電子地圖軟件的過程中,如果用戶切換了地圖渲染模式,則接收地圖渲染請求,該地圖渲染請求中攜帶了切換后的地圖渲染模式。比如,使用電子地圖軟件的過程中,用戶將地圖渲染模式從鳥瞰模式切換到第一人稱視角模式,則接收的地圖渲染請求,該地圖渲染請求攜帶的地圖渲染模式為第一人稱視角模式。
以上舉例僅為更清楚地對本申請實施例進行說明,本領(lǐng)域技術(shù)人員可根據(jù)產(chǎn)品需求,選擇獲取地圖渲染模式的方法以及相應(yīng)方法的具體應(yīng)用場景,以上舉例不應(yīng)視為對本發(fā)明實施方式的限制。
s202、獲取終端設(shè)備的當(dāng)前位置;
在實際應(yīng)用中,終端設(shè)備為手機、平板電腦等。
以上舉例僅為更清楚地對本申請實施例進行說明,本領(lǐng)域技術(shù)人員可根據(jù)產(chǎn)品需求,選擇本申請實施例提供的一種地圖渲染方法具體應(yīng)用的終端設(shè)備的表現(xiàn)形式,以上舉例不應(yīng)視為對本發(fā)明實施方式的限制。
s203、根據(jù)地圖渲染參數(shù)和終端設(shè)備的當(dāng)前位置,獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù);
在本申請實施例中,優(yōu)選的,根據(jù)地圖渲染參數(shù)和終端設(shè)備的當(dāng)前位置,獲取到的與地圖渲染模式對應(yīng)的地圖數(shù)據(jù)即為待被渲染的地圖數(shù)據(jù)。
s204、將獲取到的地圖數(shù)據(jù)按照地圖渲染模式進行渲染。
在本申請實施例中,優(yōu)選的,當(dāng)獲取到與地圖渲染模式對應(yīng)的地圖數(shù)據(jù)后,需根據(jù)地圖渲染模式對獲取到的地圖數(shù)據(jù)進行渲染,以得到地圖渲染結(jié)果,該地圖渲染結(jié)果也就是終端設(shè)備屏幕展示的電子地圖。
為了更加清楚的對本申請實施例提供的一種地圖渲染方法進行闡述,現(xiàn)對本申請實施例提供的一種地圖渲染方法中的根據(jù)地圖渲染參數(shù)和終端設(shè)備的當(dāng)前位置,獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù)的過程進行詳細介紹。
圖3為本申請實施例提供的一種根據(jù)地圖渲染參數(shù)和終端設(shè)備的當(dāng)前位置,獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù)的方法流程圖,在該實施例中,地圖渲染參數(shù)包括地圖比例尺、終端設(shè)備屏幕的分辨率和/或終端設(shè)備屏幕的像素密度,該方法包括:
s301、根據(jù)地圖比例尺、終端設(shè)備屏幕的分辨率和像素密度,獲取終端設(shè)備屏幕顯示的地圖的地理參數(shù);
s302、根據(jù)地圖的地理參數(shù)和終端設(shè)備的當(dāng)前位置,獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù)。
圖3所示獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù)的方法,僅為本申請?zhí)峁┑囊环N優(yōu)選實施例,任何在上述方法基礎(chǔ)上的變形,比如增加地圖渲染參數(shù)的種類或者減少地圖渲染參數(shù)種類等,應(yīng)視為本申請公開技術(shù)方案已給出相應(yīng)技術(shù)啟示。
現(xiàn)對本申請實施例提供的一種地圖渲染方法中的根據(jù)地圖比例尺、終端設(shè)備屏幕的分辨率和像素密度,獲取終端設(shè)備屏幕顯示的地圖的地理參數(shù)的過程進行詳細介紹。
圖4為本申請實施例提供的一種根據(jù)地圖比例尺、終端設(shè)備屏幕的分辨率和像素密度,獲取終端設(shè)備屏幕顯示的地圖的地理參數(shù)的方法流程圖。
如圖4所示,該方法包括:
s401、利用地圖比例尺和終端設(shè)備屏幕的像素密度,得到比例尺系數(shù);
在本申請實施例中,優(yōu)選的,用地圖比例尺的倒數(shù)除以終端設(shè)備屏幕的像素密度,得到終端設(shè)備屏幕的比例尺系數(shù),即,將地圖比例尺的倒數(shù)作為除數(shù),以及,將終端設(shè)備屏幕的像素密度作為被除數(shù),做除法運算,得到終端設(shè)備屏幕的比例尺系數(shù)。
以地圖比例尺為1:1km,終端設(shè)備屏幕的像素密度為25d/cm為例進行說明。其中,地圖比例尺為1:1km,表示的是顯示屏1cm(厘米)的長度等于實際1km,即1千米的實地距離,終端設(shè)備屏幕的像素密度為25d/cm表示 顯示屏上1cm等于25d(像素),那么,顯示屏每像素能顯示的實地距離為1000m/25d=40m/d(米/像素),即比例尺系數(shù)為40。也因此,在本申請實施例中,比例尺系數(shù)為40表示的是終端設(shè)備屏幕的每像素對應(yīng)40m的實地距離。
s402、根據(jù)終端設(shè)備屏幕的分辨率和比例尺系數(shù),得到終端設(shè)備屏幕顯示的地圖的地理參數(shù)。
在本申請實施例中,優(yōu)選的,當(dāng)?shù)貓D渲染模式為第一人稱視角的三維地圖渲染模式時,本申請實施例中,優(yōu)選的,比例尺系數(shù)包括三個分量,分別為豎直方向的分量、垂直方向的分量、水平方向的分量,且這三個分量的大小相同。本申請實施例提供的一種根據(jù)終端設(shè)備屏幕的分辨率和比例尺系數(shù),得到終端設(shè)備屏幕顯示的地圖的地理參數(shù)的方法請參見圖5,如圖5所示,該方法包括:
s501、根據(jù)終端設(shè)備屏幕的分辨率中的水平像素值和比例尺系數(shù),得到終端設(shè)備屏幕顯示的地圖的水平地理長度;
在本申請實施例中,優(yōu)選的,終端設(shè)備屏幕的分辨率中包括終端設(shè)備屏幕的水平像素值。
以上僅僅是本申請實施例的優(yōu)選方式,發(fā)明人可根據(jù)自己的需求任意設(shè)置終端設(shè)備屏幕的分辨率中包括的內(nèi)容,如終端設(shè)備屏幕的分辨率中包括終端設(shè)備屏幕的水平像素值和豎直像素值,在此不做限定。
在本申請實施例中,優(yōu)選的,當(dāng)終端設(shè)備屏幕的分辨率中包括水平像素值時,利用該水平像素值和比例尺系數(shù)可得到終端設(shè)備屏幕顯示的地圖的水平地理長度。
在本申請實施例中,優(yōu)選的,根據(jù)終端設(shè)備屏幕的分辨率中的水平像素值和比例尺系數(shù),得到終端設(shè)備屏幕顯示的地圖的水平地理長度的過程包括:利用終端設(shè)備屏幕的分辨率中的水平像素值乘以比例尺系數(shù),進而將乘積結(jié)果作為終端設(shè)備屏幕顯示的地圖的水平地理長度。
在本申請實施例中,優(yōu)選的,利用終端設(shè)備屏幕的分辨率中的水平像素值乘以比例尺系數(shù),將乘積結(jié)果作為終端設(shè)備屏幕顯示的地圖的水平地理長度的過程包括:獲取比例尺系數(shù)在水平方向的分量的水平分量值,利用終端 設(shè)備屏幕的分辨率中的水平像素值乘以獲取到的水平分量值,將乘積結(jié)果作為終端設(shè)備屏幕顯示的地圖的水平地理長度。
s502、獲取預(yù)先設(shè)置的終端設(shè)備屏幕顯示的地圖的垂直地理長度,水平地理長度和垂直地理長度為終端設(shè)備屏幕顯示的地圖的地理參數(shù)。
在本申請實施例中,優(yōu)選的,預(yù)先設(shè)置有終端設(shè)備屏幕顯示的地圖的垂直地理長度。當(dāng)在根據(jù)終端設(shè)備屏幕的分辨率和比例尺系數(shù),得到終端設(shè)備屏幕顯示的地圖的地理參數(shù)的過程中,計算得到的終端設(shè)備屏幕顯示的地圖的水平地理長度后,則直接獲取該預(yù)先設(shè)置的終端設(shè)備屏幕顯示的地圖的垂直地理長度,進而將計算得到的水平地理長度和獲取到的垂直地理長度作為終端設(shè)備屏幕顯示的地圖的地理參數(shù)。
在本申請實施例中,優(yōu)選的,發(fā)明人可根據(jù)自己的需求任意設(shè)置預(yù)先設(shè)置的垂直地理長度的具體數(shù)值,在此不做限定。
進一步的,為了更加清楚的對本申請實施例提供的一種地圖渲染方法進行闡述,現(xiàn)對本申請實施例提供的一種地圖渲染方法中的根據(jù)地圖的地理參數(shù)和終端設(shè)備的當(dāng)前位置,獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù)的過程進行詳細介紹。
圖6為本申請實施例提供的一種根據(jù)地圖的地理參數(shù)和終端設(shè)備的當(dāng)前位置,獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù)的方法流程圖,圖7為本申請實施例提供的一種根據(jù)地圖的地理參數(shù)和終端設(shè)備的當(dāng)前位置,獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù)的坐標原理圖。在該實施例中,終端設(shè)備的當(dāng)前位置包括經(jīng)度坐標和緯度坐標,結(jié)合圖6和圖7可知,該方法包括:
s601、根據(jù)終端設(shè)備的當(dāng)前位置中的經(jīng)度坐標和地圖的水平地理長度,得到終端設(shè)備顯示的地圖在水平方向的最小經(jīng)度坐標和最大經(jīng)度坐標;
在本申請實施例中,優(yōu)選的,當(dāng)終端設(shè)備的當(dāng)前位置包括終端設(shè)備的當(dāng)前位置的經(jīng)度坐標和緯度坐標時,本申請實施例提供的一種根據(jù)地圖的地理參數(shù)和終端設(shè)備的當(dāng)前位置,獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù)的方法,首先需要根據(jù)終端設(shè)備的當(dāng)前位置中的經(jīng)度坐標和地圖的水平地理長度,得到終端設(shè)備顯示的地圖在水平方向的最小經(jīng)度坐標和最大經(jīng)度坐標。
參見圖7,其中,71表示終端設(shè)備的當(dāng)前位置,72表示終端設(shè)備屏幕空間,73中的平行四邊形表示地圖的地理參數(shù),平行四邊形的一邊l表示預(yù)先設(shè)置的終端設(shè)備屏幕顯示的地圖的垂直地理長度,平行四邊形的另一邊w表示終端設(shè)備屏幕顯示的地圖的水平地理長度。
結(jié)合圖7可知,在本申請實施例中,優(yōu)選的,根據(jù)終端設(shè)備的當(dāng)前位置中的經(jīng)度坐標和地圖的水平地理長度,得到終端設(shè)備顯示的地圖在水平方向的最小經(jīng)度坐標和最大經(jīng)度坐標的方法包括:將終端設(shè)備的經(jīng)度坐標作為邊長w的中心點,將終端設(shè)備的經(jīng)度坐標沿x軸方向平移w/2的水平地理長度,得到終端設(shè)備顯示的地圖在水平方向的最大經(jīng)度坐標;將終端設(shè)備的經(jīng)度坐標作為邊長w的中心點,將終端設(shè)備的經(jīng)度坐標沿x軸反方向平移w/2的水平地理長度,得到終端設(shè)備顯示的地圖在水平方向的最小經(jīng)度坐標。
s602、將終端設(shè)備的當(dāng)前位置中的緯度坐標確定為終端設(shè)備顯示的地圖在垂直方向的最小緯度坐標;
s603、將最小緯度坐標平移垂直地理長度,得到終端設(shè)備顯示的地圖在垂直方向的最大緯度坐標;
結(jié)合圖7可知,步驟s602和步驟s603的具體實現(xiàn)過程包括:將終端設(shè)備的當(dāng)前位置中的緯度坐標確定為終端設(shè)備顯示的地圖在垂直方向的最小緯度坐標,將終端設(shè)備的當(dāng)前位置中的緯度坐標沿z軸方向平移l的水平地理長度,得到終端設(shè)備顯示的地圖在垂直方向的最大緯度坐標。
s604、獲取地理坐標位置落入由最大經(jīng)度坐標、最大緯度坐標、最小經(jīng)度坐標和最小緯度坐標構(gòu)成的地理范圍內(nèi)的地圖數(shù)據(jù)。
在本申請實施例中,優(yōu)選的,獲取地理坐標位置落入由最大經(jīng)度坐標、最大緯度坐標、最小經(jīng)度坐標和最小緯度坐標構(gòu)成的地理范圍內(nèi)的地圖數(shù)據(jù),該獲取到的地圖數(shù)據(jù)即為根據(jù)地圖的地理參數(shù)和終端設(shè)備的當(dāng)前位置,獲取到的與地圖渲染模式對應(yīng)的地圖數(shù)據(jù)。
進一步的,為了更加清楚的對本申請實施例提供的一種地圖渲染方法進行闡述,現(xiàn)對本申請實施例提供的一種地圖渲染方法中的將獲取到的地圖數(shù)據(jù)按照地圖渲染模式進行渲染的過程進行詳細介紹。
圖8為本申請實施例提供的一種將獲取到的地圖數(shù)據(jù)按照地圖渲染模式進行渲染的方法流程圖。
如圖8所示,該方法包括:
s801、根據(jù)比例尺系數(shù)及地圖渲染模式對應(yīng)的視角、地圖旋轉(zhuǎn)角度,將地圖數(shù)據(jù)從經(jīng)緯度坐標系變換為地圖渲染模式下的慣性坐標系的地圖數(shù)據(jù),慣性坐標系的坐標原點為終端設(shè)備的當(dāng)前位置;
在本申請實施例中,優(yōu)選的,地圖渲染模式對應(yīng)的視角是由地圖渲染模式預(yù)先設(shè)置的,其指示視線與水平面的夾角,也即俯仰角。
以上僅僅是本申請實施例的優(yōu)選方式,發(fā)明人可根據(jù)自己的需求任意設(shè)置視角的設(shè)置方式,如實時設(shè)置與當(dāng)前用戶視線對應(yīng)的視角作為本申請實施例中的視角等,在此不做限定。
在本申請實施例中,優(yōu)選的,地圖旋轉(zhuǎn)角度為實時計算的,其指示當(dāng)前視線與豎直面的夾角。
以上僅僅是本申請實施例的優(yōu)選方式,發(fā)明人可根據(jù)自己的需求任意設(shè)置地圖旋轉(zhuǎn)角度的設(shè)置方式,如將地圖旋轉(zhuǎn)角度設(shè)置為預(yù)設(shè)值等,在此不做限定。
s802、以相機空間坐標系的任意一個坐標作為慣性坐標系新的坐標原點,將慣性坐標系下的地圖數(shù)據(jù)平移到相機空間坐標系,得到相機空間坐標系下的地圖數(shù)據(jù);
在本申請實施例中,優(yōu)選的,相機空間坐標系的任意一個坐標通常為相機空間坐標系的坐標原點,這個坐標原點一般指示以相機空間中相機鏡頭(屏幕)底部正中心為原點,如坐標點(0,0,0)。
以上僅僅是本申請實施例的優(yōu)選方式,發(fā)明人可根據(jù)自己的需求任意設(shè)置作為新的坐標原點的具體坐標,在此不做限定。
s803、將相機空間坐標系下的地圖數(shù)據(jù)投影到相機空間坐標系代表相機屏幕的坐標面,得到二維屏幕坐標系下的地圖數(shù)據(jù);
s804、通過光柵化過程對二維屏幕坐標系下的地圖數(shù)據(jù)進行渲染。
進一步的,為了更加清楚的對本申請實施例提供的一種地圖渲染方法進行闡述,現(xiàn)對本申請實施例提供的一種根據(jù)比例尺系數(shù)及地圖渲染模式對應(yīng) 的視角、地圖旋轉(zhuǎn)角度,將地圖數(shù)據(jù)從經(jīng)緯度坐標系變換為地圖渲染模式下的慣性坐標系的地圖數(shù)據(jù)的過程進行詳細介紹。
在本申請實施例中,優(yōu)選的,利用預(yù)先設(shè)定的坐標變換矩陣m1將地圖數(shù)據(jù)從經(jīng)緯度坐標系變換為地圖渲染模式下的慣性坐標系的地圖數(shù)據(jù);
其中,m1=mt*s1*r1;
在本申請實施例中,優(yōu)選的,(rzx1,rzy1,rzz1)通常等于(0,0,0,),以指示地面沒有旋轉(zhuǎn)。
以上僅僅是本申請實施例的優(yōu)選方式,發(fā)明人可根據(jù)自己的需求任意設(shè)置(rzx1,rzy1,rzz1)的具體數(shù)值,在此不做限定。
進一步的,為了更加清楚的對本申請實施例提供的一種地圖渲染方法進行闡述,現(xiàn)對本申請實施例提供的一種以相機空間坐標系的任意一個坐標作為慣性坐標系新的坐標原點,將慣性坐標系下的地圖數(shù)據(jù)平移到相機空間坐標系,得到相機空間坐標系下的地圖數(shù)據(jù)的過程進行詳細介紹。
在本申請實施例中,優(yōu)選的,利用預(yù)先設(shè)置的平移坐標系m0將慣性坐標系下的地圖數(shù)據(jù)平移到相機空間坐標系,得到相機空間坐標系下的地圖數(shù)據(jù);
其中,
在本申請實施例中,優(yōu)選的,相機空間坐標系的任意一個坐標通常為相機空間坐標系的坐標原點,這個坐標原點一般指示以相機空間中相機鏡頭(屏幕)底部正中心為原點,如坐標點(0,0,0)。
在本申請實施例中,優(yōu)選的,當(dāng)相機空間坐標系的任意一個坐標為相機空間坐標系的坐標原點(0,0,0)時,
進一步的,為了更加清楚的對本申請實施例提供的一種地圖渲染方法進行闡述,現(xiàn)對本申請實施例提供的一種將相機空間坐標系下的地圖數(shù)據(jù)投影到相機空間坐標系代表相機屏幕的坐標面,得到二維屏幕坐標系下的地圖數(shù)據(jù)的過程進行詳細介紹。
在本申請實施例中,優(yōu)選的,利用預(yù)先設(shè)置的透視投影矩陣projection將相機空間坐標系下的地圖數(shù)據(jù)投影到相機空間坐標系代表相機屏幕的坐標面,得到二維屏幕坐標系下的地圖數(shù)據(jù),其中,
具體的,透視投影矩陣projection為現(xiàn)有技術(shù),有關(guān)對透視投影矩陣projection的描述請參見現(xiàn)有技術(shù),在此不做贅述。
參見圖1和圖9,其中,圖1為本申請實施例提供的一種鳥瞰模式三維地圖的地圖渲染效果圖(圖1中的箭頭11指示智能終端的當(dāng)前位置);圖9為本申請實施例提供的一種第一人稱視角模式三維地圖的地圖渲染效果圖(箭頭91指示智能終端的當(dāng)前位置)。
結(jié)合圖1和圖9可明確得知,本申請實施例提供的一種地圖渲染方法在地圖渲染模式為第一人稱視角的三維地圖渲染模式時的渲染結(jié)果對用戶的代入感與用戶的實際駕車體驗之間的差距明顯小于,當(dāng)?shù)貓D渲染模式為鳥瞰三維地圖渲染模式時的渲染結(jié)果對用戶的代入感與用戶的實際駕車體驗之間的差距。
本申請?zhí)峁┮环N地圖渲染方法,通過獲取地圖渲染模式和地圖渲染參數(shù);獲取終端設(shè)備的當(dāng)前位置;并根據(jù)地圖渲染參數(shù)和終端設(shè)備的當(dāng)前位置,獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù);進而將獲取到的地圖數(shù)據(jù)按照地圖渲染模式進行渲染的方式,保證地圖渲染結(jié)果按照用戶需要的地圖渲染模式進行渲染,以縮小地圖渲染結(jié)果對用戶的代入感與用戶的實際駕車體驗之間的差距。
圖10為本申請實施例提供的一種地圖渲染裝置的結(jié)構(gòu)示意圖。
如圖10所示,該裝置包括:
模式參數(shù)獲取單元101,用于獲取地圖渲染模式和地圖渲染參數(shù);
位置獲取單元102,用于獲取終端設(shè)備的當(dāng)前位置;
地圖數(shù)據(jù)獲取單元103,用于根據(jù)地圖渲染參數(shù)和終端設(shè)備的當(dāng)前位置,獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù);
地圖渲染單元104,用于將獲取到的地圖數(shù)據(jù)按照地圖渲染模式進行渲染。
在本申請實施例中,優(yōu)選的,模式參數(shù)獲取單元101接收地圖渲染請求,地圖渲染請求中攜帶地圖渲染模式;或者,讀取預(yù)先設(shè)置的地圖渲染模式。
圖11為本申請實施例提供的一種地圖數(shù)據(jù)獲取單元的詳細結(jié)構(gòu)示意圖。
在本申請實施例中,優(yōu)選的,地圖渲染參數(shù)至少包括地圖比例尺、終端設(shè)備屏幕的分辨率和像素密度。如圖11所示,地圖數(shù)據(jù)獲取單元包括:
地理參數(shù)獲取單元111,用于根據(jù)地圖比例尺、終端設(shè)備屏幕的分辨率和像素密度,獲取終端設(shè)備屏幕顯示的地圖的地理參數(shù);
地圖數(shù)據(jù)獲取子單元112,用于根據(jù)地圖的地理參數(shù)和終端設(shè)備的當(dāng)前位置,獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù)。
圖12為本申請實施例提供的一種地理參數(shù)獲取單元的詳細結(jié)構(gòu)示意圖。
如圖12所示,地理參數(shù)獲取單元包括:
比例尺系數(shù)計算單元121,用于利用地圖比例尺和終端設(shè)備屏幕的像素密度,得到比例尺系數(shù);
地理參數(shù)獲取子單元122,用于根據(jù)終端設(shè)備屏幕的分辨率和比例尺系數(shù),得到終端設(shè)備屏幕顯示的地圖的地理參數(shù)。
圖13為本申請實施例提供的一種地理參數(shù)獲取子單元的詳細結(jié)構(gòu)示意圖。
在本申請實施例中,優(yōu)選的,地圖渲染模式為第一人稱視角的三維地圖渲染模式。如圖13所示,地理參數(shù)獲取子單元包括:
水平地理長度計算單元131,用于根據(jù)終端設(shè)備屏幕的分辨率中的水平像素值和比例尺系數(shù),得到終端設(shè)備屏幕顯示的地圖的水平地理長度;
地理參數(shù)確定單元132,用于獲取預(yù)先設(shè)置的終端設(shè)備屏幕顯示的地圖的垂直地理長度,水平地理長度和垂直地理長度為終端設(shè)備屏幕顯示的地圖的地理參數(shù)。
圖14為本申請實施例提供的一種地圖數(shù)據(jù)獲取子單元的詳細結(jié)構(gòu)示意圖。
在本申請實施例中,優(yōu)選的,終端設(shè)備的當(dāng)前位置包括經(jīng)度坐標和緯度坐標。如圖14所示,地圖數(shù)據(jù)獲取子單元包括:
計算單元141,用于根據(jù)終端設(shè)備的當(dāng)前位置中的經(jīng)度坐標和地圖的水平地理長度,得到終端設(shè)備顯示的地圖在水平方向的最小經(jīng)度坐標和最大經(jīng)度坐標;
確定單元142,用于將終端設(shè)備的當(dāng)前位置中的緯度坐標確定為終端設(shè)備顯示的地圖在垂直方向的最小緯度坐標;
平移單元143,用于將最小緯度坐標平移垂直地理長度,得到終端設(shè)備顯示的地圖在垂直方向的最大緯度坐標;
獲取單元144,用于獲取地理坐標位置落入由最大經(jīng)度坐標、最大緯度坐標、最小經(jīng)度坐標和最小緯度坐標構(gòu)成的地理范圍內(nèi)的地圖數(shù)據(jù)。
圖15為本申請實施例提供的一種地圖渲染單元的詳細結(jié)構(gòu)示意圖。
如圖15所示,地圖渲染單元包括:
坐標系變換單元151,用于根據(jù)比例尺系數(shù)及地圖渲染模式對應(yīng)的視角、地圖旋轉(zhuǎn)角度,將地圖數(shù)據(jù)從經(jīng)緯度坐標系變換為地圖渲染模式下的慣性坐標系的地圖數(shù)據(jù),慣性坐標系的坐標原點為終端設(shè)備的當(dāng)前位置;
坐標系平移單元152,用于以相機空間坐標系的任意一個坐標作為慣性坐標系新的坐標原點,將慣性坐標系下的地圖數(shù)據(jù)平移到相機空間坐標系,得到相機空間坐標系下的地圖數(shù)據(jù);
投影單元153,用于將相機空間坐標系下的地圖數(shù)據(jù)投影到相機空間坐標系代表相機屏幕的坐標面,得到二維屏幕坐標系下的地圖數(shù)據(jù);
光柵單元154,用于通過光柵化過程對二維屏幕坐標系下的地圖數(shù)據(jù)進行渲染。
本申請?zhí)峁┮环N地圖渲染裝置,通過獲取地圖渲染模式和地圖渲染參數(shù);獲取終端設(shè)備的當(dāng)前位置;并根據(jù)地圖渲染參數(shù)和終端設(shè)備的當(dāng)前位置,獲取與地圖渲染模式對應(yīng)的地圖數(shù)據(jù);進而將獲取到的地圖數(shù)據(jù)按照地圖渲染模式進行渲染的方式,保證地圖渲染結(jié)果按照用戶需要的地圖渲染模式進行渲染,以縮小地圖渲染結(jié)果對用戶的代入感與用戶的實際駕車體驗之間的差距。
需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于裝置類實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上對本發(fā)明所提供的一種三維導(dǎo)航地圖渲染方法和裝置進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。