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