亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種生成室內(nèi)地圖的方法及裝置與流程

文檔序號(hào):11251956閱讀:1726來源:國知局
一種生成室內(nèi)地圖的方法及裝置與流程

本申請(qǐng)涉及地圖生成技術(shù)領(lǐng)域,具體涉及一種生成室內(nèi)地圖的方法及裝置。



背景技術(shù):

室內(nèi)地圖一般指大型室內(nèi)建筑的內(nèi)部地圖,例如商場、機(jī)場等建筑物內(nèi)的內(nèi)部地圖,用戶通過移動(dòng)終端查看室內(nèi)地圖可以在建筑物內(nèi)部仍能較為便捷地找到要去的店鋪、衛(wèi)生間、電梯、休息區(qū)、出入口等。

在現(xiàn)有技術(shù)中,室內(nèi)地圖一般都是以比較簡單的平面區(qū)塊信息進(jìn)行顯示,展示的室內(nèi)場景與真實(shí)環(huán)境差異較大,因此,在現(xiàn)有技術(shù)中缺乏一種展示室內(nèi)真實(shí)場景的室內(nèi)地圖生成方法。



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

有鑒于此,本申請(qǐng)?zhí)峁┮环N生成室內(nèi)地圖的方法及裝置,以解決現(xiàn)有技術(shù)中存在的室內(nèi)地圖與真實(shí)環(huán)境差異較大的技術(shù)問題。

為解決上述問題,本申請(qǐng)?zhí)峁┑募夹g(shù)方案如下:

一種生成室內(nèi)地圖的方法,所述方法應(yīng)用于服務(wù)器,所述方法包括:

獲取建筑物的第一三維模型;

將所述第一三維模型進(jìn)行壓縮,生成第二三維模型;

確定所述建筑物在平面地圖上的位置信息,將所述建筑物在平面地圖上的位置信息與所述第二三維模型對(duì)應(yīng)保存,以使終端在接收到包括所述建筑物在平面地圖上的位置信息的室內(nèi)地圖查詢指令時(shí),獲取所述第二三維模型進(jìn)行所述建筑物的室內(nèi)地圖展示。

相應(yīng)的,所述將所述第一三維模型進(jìn)行壓縮,生成第二三維模型,包括:

從所述第一三維模型中提取室內(nèi)地圖所需的三維建筑信息,獲得第三三維模型;

將所述第三三維模型的各個(gè)頂點(diǎn)坐標(biāo)進(jìn)行壓縮,生成第二三維模型。

相應(yīng)的,所述將所述第三三維模型的各個(gè)頂點(diǎn)坐標(biāo)進(jìn)行壓縮,生成第二三維模型,包括:

計(jì)算所述第三三維模型的包圍球,將所述包圍球的中心點(diǎn)作為所述第三三維模型的中心點(diǎn);

分別計(jì)算所述第三三維模型的各個(gè)頂點(diǎn)坐標(biāo)與所述第三三維模型的中心點(diǎn)坐標(biāo)之差,獲得所述第三三維模型的各個(gè)頂點(diǎn)與所述第三三維模型的中心點(diǎn)之間的相對(duì)坐標(biāo);

將各個(gè)所述相對(duì)坐標(biāo)除以所述包圍球半徑后乘以預(yù)設(shè)固定值,獲得各個(gè)轉(zhuǎn)換后的頂點(diǎn)坐標(biāo),各個(gè)所述轉(zhuǎn)換后的頂點(diǎn)坐標(biāo)的坐標(biāo)值均為整數(shù)型;

各個(gè)所述轉(zhuǎn)換后的頂點(diǎn)坐標(biāo)作為第二三維模型的頂點(diǎn)坐標(biāo),生成所述第二三維模型。

一種生成室內(nèi)地圖的方法,所述方法應(yīng)用于終端,所述方法包括:

接收包括建筑物在平面地圖上的位置信息的室內(nèi)地圖查詢指令;

從服務(wù)器獲取所述位置信息對(duì)應(yīng)的第二三維模型;

將所述第二三維模型進(jìn)行壓縮還原,生成第三三維模型;

對(duì)所述第三三維模型進(jìn)行渲染顯示,以進(jìn)行所述建筑物的室內(nèi)地圖展示。

相應(yīng)的,所述將所述第二三維模型進(jìn)行壓縮還原,生成第三三維模型,包括:

將所述第二三維模型的頂點(diǎn)坐標(biāo)除以預(yù)設(shè)固定值后乘以包圍球半徑,獲得第三三維模型的各個(gè)頂點(diǎn)與所述第三三維模型的中心點(diǎn)之間的相對(duì)坐標(biāo);

將各個(gè)所述相對(duì)坐標(biāo)加上所述第三三維模型的中心點(diǎn)坐標(biāo),獲得所述第三三維模型的各個(gè)頂點(diǎn)坐標(biāo),生成所述第三三維模型,所述預(yù)設(shè)固定值、所述包圍球半徑以及所述第三三維模型的中心點(diǎn)坐標(biāo)是從所述服務(wù)器獲取的。

一種生成室內(nèi)地圖的裝置,所述裝置應(yīng)用于服務(wù)器,所述裝置包括:

獲取單元,用于獲取建筑物的第一三維模型;

壓縮單元,用于將所述第一三維模型進(jìn)行壓縮,生成第二三維模型;

保存單元,用于確定所述建筑物在平面地圖上的位置信息,將所述建筑物在平面地圖上的位置信息與所述第二三維模型對(duì)應(yīng)保存,以使終端在接收到包括所述建筑物在平面地圖上的位置信息的室內(nèi)地圖查詢指令時(shí),獲取所述第二三維模型進(jìn)行所述建筑物的室內(nèi)地圖展示。

相應(yīng)的,所述壓縮單元包括:

提取子單元,用于從所述第一三維模型中提取室內(nèi)地圖所需的三維建筑信息,獲得第三三維模型;

壓縮子單元,用于將所述第三三維模型的各個(gè)頂點(diǎn)坐標(biāo)進(jìn)行壓縮,生成第二三維模型。

相應(yīng)的,所述壓縮子單元包括:

第一計(jì)算子單元,用于計(jì)算所述第三三維模型的包圍球,將所述包圍球的中心點(diǎn)作為所述第三三維模型的中心點(diǎn);

第二計(jì)算子單元,用于分別計(jì)算所述第三三維模型的各個(gè)頂點(diǎn)坐標(biāo)與所述第三三維模型的中心點(diǎn)坐標(biāo)之差,獲得所述第三三維模型的各個(gè)頂點(diǎn)與所述第三三維模型的中心點(diǎn)之間的相對(duì)坐標(biāo);

第三計(jì)算子單元,用于將各個(gè)所述相對(duì)坐標(biāo)除以所述包圍球半徑后乘以預(yù)設(shè)固定值,獲得各個(gè)轉(zhuǎn)換后的頂點(diǎn)坐標(biāo),各個(gè)所述轉(zhuǎn)換后的頂點(diǎn)坐標(biāo)的坐標(biāo)值均為整數(shù)型;

生成子單元,用于各個(gè)所述轉(zhuǎn)換后的頂點(diǎn)坐標(biāo)作為第二三維模型的頂點(diǎn)坐標(biāo),生成所述第二三維模型。

一種生成室內(nèi)地圖的裝置,所述裝置應(yīng)用于終端,所述裝置包括:

接收單元,用于接收包括建筑物在平面地圖上的位置信息的室內(nèi)地圖查詢指令;

獲取單元,用于從服務(wù)器獲取所述位置信息對(duì)應(yīng)的第二三維模型;

壓縮還原單元,用于將所述第二三維模型進(jìn)行壓縮還原,生成第三三維模型;

顯示單元,用于對(duì)所述第三三維模型進(jìn)行渲染顯示,以進(jìn)行所述建筑物的室內(nèi)地圖展示。

相應(yīng)的,所述壓縮還原單元包括:

第一計(jì)算子單元,用于將所述第二三維模型的頂點(diǎn)坐標(biāo)除以預(yù)設(shè)固定值后乘以包圍球半徑,獲得第三三維模型的各個(gè)頂點(diǎn)與所述第三三維模型的中心點(diǎn)之間的相對(duì)坐標(biāo);

第二計(jì)算子單元,用于將各個(gè)所述相對(duì)坐標(biāo)加上所述第三三維模型的中心點(diǎn)坐標(biāo),獲得所述第三三維模型的各個(gè)頂點(diǎn)坐標(biāo),生成所述第三三維模型,所述預(yù)設(shè)固定值、所述包圍球半徑以及所述第三三維模型的中心點(diǎn)坐標(biāo)是從所述服務(wù)器獲取的。

由此可見,本申請(qǐng)實(shí)施例具有如下有益效果:

本申請(qǐng)實(shí)施例通過獲取建筑物的三維模型,將三維模型進(jìn)行壓縮后與該建筑物在平面地圖上的位置信息對(duì)應(yīng)保存,在使用終端的用戶需要顯示該建筑物的室內(nèi)地圖時(shí),終端可以加載壓縮后的三維模型作為室內(nèi)地圖顯示,由于三維模型包括的建筑物室內(nèi)信息非常全面,可以以更多的顯示要素展示室內(nèi)場景,從而使室內(nèi)地圖的展示與建筑物內(nèi)部的真實(shí)環(huán)境較為接近。

附圖說明

圖1為現(xiàn)有技術(shù)中室內(nèi)地圖的示意圖;

圖2為本申請(qǐng)實(shí)施例提供的生成室內(nèi)地圖的方法實(shí)施例一的流程圖;

圖3為本申請(qǐng)實(shí)施例提供的生成第二三維模型的方法實(shí)施例的流程圖;

圖4為本申請(qǐng)實(shí)施例中三維模型的示意圖;

圖5為本申請(qǐng)實(shí)施例提供的生成室內(nèi)地圖的方法實(shí)施例二的流程圖;

圖6為本申請(qǐng)實(shí)施例提供的生成室內(nèi)地圖的裝置實(shí)施例一的示意圖;

圖7為本申請(qǐng)實(shí)施例提供的生成室內(nèi)地圖的裝置實(shí)施例二的示意圖。

具體實(shí)施方式

為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式對(duì)本申請(qǐng)實(shí)施例作進(jìn)一步詳細(xì)的說明。

參見圖1所示,是現(xiàn)有技術(shù)中室內(nèi)地圖的示意圖,可以看出現(xiàn)有的室內(nèi)地圖均是以比較簡單的平面區(qū)塊信息進(jìn)行顯示,例如地圖中某個(gè)區(qū)塊對(duì)應(yīng)于某個(gè)店鋪等等,該室內(nèi)地圖的展示與室內(nèi)真實(shí)環(huán)境差異較大。為此,本申請(qǐng)實(shí)施例中提供了一種生成室內(nèi)地圖的方法及裝置,利用建筑物的三維模型以生成該建筑物的室內(nèi)地圖,由于三維模型包括的建筑物室內(nèi)信息非常全面,可以以更多的顯示要素展示室內(nèi)場景,從而使室內(nèi)地圖的展示與建筑物內(nèi)部的真實(shí)環(huán)境較為接近。

參見圖2所示,示出了本申請(qǐng)實(shí)施例中提供的生成室內(nèi)地圖的方法實(shí)施例一,本實(shí)施例可以應(yīng)用于服務(wù)器,可以包括以下步驟:

步驟201:獲取建筑物的第一三維模型。

建筑物的三維模型包括了通過數(shù)字信息仿真模擬建筑物所具有的真實(shí)信息,三維模型可以為bim(建筑信息模型,buildinginformationmodeling,或者建筑信息管理,buildinginformationmanagement,)或者3dmax模型等各類三維模型。其中,bim是以建筑工程項(xiàng)目的各項(xiàng)相關(guān)信息數(shù)據(jù)作為基礎(chǔ),建立起三維的建筑模型。由于三維模型中建筑物的室內(nèi)信息非常詳盡,因此本實(shí)施例選擇建筑物的三維模型作為室內(nèi)地圖的數(shù)據(jù)來源。

在本實(shí)施例中,建筑物的第一三維模型可以理解為建筑物的原始三維模型,該第一三維模型所包括的信息較多,數(shù)據(jù)量較大,由于室內(nèi)地圖一般是由終端進(jìn)行顯示,而終端的處理能力有限,因此需要對(duì)第一三維模型進(jìn)行壓縮處理。

步驟202:將第一三維模型進(jìn)行壓縮,生成第二三維模型。

在本實(shí)施例中,第二三維模型可以理解為對(duì)第一三維模型進(jìn)行壓縮后的模型,第二三維模型數(shù)據(jù)量相較于第一三維模型數(shù)據(jù)量小,適合在終端進(jìn)行加載渲染,以進(jìn)行室內(nèi)地圖的展示。

在本申請(qǐng)一些可能的實(shí)現(xiàn)方式中,將第一三維模型進(jìn)行壓縮,生成第二三維模型的具體實(shí)現(xiàn)可以包括:從第一三維模型中提取室內(nèi)地圖所需的三維建筑信息,獲得第三三維模型;將第三三維模型的各個(gè)頂點(diǎn)坐標(biāo)進(jìn)行壓縮,生成第二三維模型。

在第一三維模型中可能還包括一些不用于顯示室內(nèi)地圖的要素,例如建筑物內(nèi)關(guān)于管線的相關(guān)信息,因此首先需要將第一三維模型進(jìn)行輕量化處理,可以把第一三維模型中室內(nèi)地圖不需要的三維建筑信息刪除,將第一三維模型中的其他信息提取為室內(nèi)地圖所需的三維建筑信息,獲得第三三維模型,或者直接提取室內(nèi)地圖所需的三維建筑信息,獲得第三三維模型。室內(nèi)地圖所需的三維建筑信息的類型或者室內(nèi)地圖不需要的三維建筑信息的類型均可以預(yù)先設(shè)置,例如預(yù)先將管線信息設(shè)置為室內(nèi)地圖不需要的三維建筑信息,則可以在第一三維模型中將管線信息刪除。

對(duì)于得到的第三三維模型,可以利用本申請(qǐng)實(shí)施例中提供的頂點(diǎn)壓縮算法將第三三維模型的各個(gè)頂點(diǎn)坐標(biāo)進(jìn)行壓縮,生成第二三維模型,關(guān)于頂點(diǎn)壓縮算法的相關(guān)說明可以參見后續(xù)實(shí)施例。

步驟203:確定建筑物在平面地圖上的位置信息,將建筑物在平面地圖上的位置信息與第二三維模型對(duì)應(yīng)保存,以使終端在接收到包括建筑物在平面地圖上的位置信息的室內(nèi)地圖查詢指令時(shí),獲取第二三維模型進(jìn)行建筑物的室內(nèi)地圖展示。

建筑物在平面地圖上的位置信息可以為gps(全球定位系統(tǒng),globalpositioningsystem)坐標(biāo),也可以為平面地圖的區(qū)塊信息,以標(biāo)識(shí)該建筑物在平面地圖上的位置。將建筑物在平面地圖上的位置信息與第二三維模型對(duì)應(yīng)保存,同時(shí)可以保存該位置信息具有室內(nèi)地圖的標(biāo)識(shí),以使用戶在終端查看該位置信息對(duì)應(yīng)的平面地圖時(shí),可以獲知該位置信息存在室內(nèi)地圖,可以對(duì)該位置信息的室內(nèi)地圖進(jìn)行查看。在終端接收到包括建筑物在平面地圖上的位置信息的室內(nèi)地圖查詢指令時(shí),可以獲取該位置信息對(duì)應(yīng)的第二三維模型進(jìn)行室內(nèi)地圖展示。在實(shí)際應(yīng)用中,平面地圖可以使用擴(kuò)展的geojson格式,并以http(超文本傳輸協(xié)議,hypertexttransferprotocol)服務(wù)的形式將平面地圖以及第二三維模型放置于服務(wù)器之上,供終端使用,其中g(shù)eojson是一種對(duì)各種地理數(shù)據(jù)結(jié)構(gòu)進(jìn)行編碼的格式。

這樣,本申請(qǐng)實(shí)施例通過獲取建筑物的三維模型,將三維模型進(jìn)行壓縮后與該建筑物在平面地圖上的位置信息對(duì)應(yīng)保存,在使用終端的用戶需要顯示該建筑物的室內(nèi)地圖時(shí),終端可以加載壓縮后的三維模型作為室內(nèi)地圖顯示,由于三維模型包括的建筑物室內(nèi)信息非常全面,可以以更多的顯示要素展示室內(nèi)場景,從而使室內(nèi)地圖的展示與建筑物內(nèi)部的真實(shí)環(huán)境較為接近。

參見圖3所示,在本申請(qǐng)一些可能的實(shí)現(xiàn)方式中,在上述實(shí)施例中提到可以利用頂點(diǎn)壓縮算法將第三三維模型的各個(gè)頂點(diǎn)坐標(biāo)進(jìn)行壓縮,生成第二三維模型,其具體實(shí)現(xiàn)可以包括以下步驟:

步驟301:計(jì)算第三三維模型的包圍球,將包圍球的中心點(diǎn)作為第三三維模型的中心點(diǎn)。

在本實(shí)施例中,為了壓縮第三三維模型,主要考慮將第三三維模型的頂點(diǎn)坐標(biāo)數(shù)據(jù)進(jìn)行壓縮,例如將頂點(diǎn)坐標(biāo)中每個(gè)方向的坐標(biāo)值由采用32位浮點(diǎn)型數(shù)據(jù)保存壓縮為采用16位整數(shù)型數(shù)據(jù)保存,從而頂點(diǎn)坐標(biāo)的數(shù)據(jù)量可以減少一半。

在壓縮過程中,首先計(jì)算第三三維模型的包圍球,第三三維模型的包圍球可以理解為第三三維模型的最小外切球,包圍球可以以包圍球的中心點(diǎn)坐標(biāo)+包圍球半徑的形式表示。在實(shí)際應(yīng)用中可以利用第三三維模型中各個(gè)頂點(diǎn)坐標(biāo)計(jì)算第三三維模型的包圍球,具體的,可以遍歷第三三維模型中各個(gè)頂點(diǎn)坐標(biāo),確定各個(gè)頂點(diǎn)坐標(biāo)中的最大坐標(biāo)和最小坐標(biāo),最大坐標(biāo)和最小坐標(biāo)對(duì)應(yīng)于所有頂點(diǎn)中的兩個(gè)頂點(diǎn),將這兩個(gè)頂點(diǎn)連線的中點(diǎn)作為包圍球的中心點(diǎn),將這兩個(gè)頂點(diǎn)之間的距離作為包圍球直徑,包圍球直徑的一半即為包圍球半徑。其中,頂點(diǎn)坐標(biāo)可以以(x,y,z)的形式表示,x可以表示橫軸坐標(biāo)值,y可以表示垂直軸坐標(biāo)值,z可以表示縱軸坐標(biāo)值。

參見圖4所示,以一個(gè)正方體三維模型為例,進(jìn)行相關(guān)計(jì)算的說明。

假設(shè)該正方體三維模型的8個(gè)頂點(diǎn)坐標(biāo)分別為:

(-100,-100,-100)、

(-100,100,-100)、

(100,100,-100)、

(100,-100,-100)、

(-100,-100,100)、

(-100,100,100)、

(100,100,100)、

(100,-100,100)

在本例中,為了便于書寫,將各個(gè)頂點(diǎn)坐標(biāo)中三個(gè)方向的坐標(biāo)值小數(shù)點(diǎn)后的位數(shù)均省略,實(shí)際上在壓縮前以上各個(gè)坐標(biāo)值均可以以32位浮點(diǎn)型數(shù)據(jù)進(jìn)行保存。則在這些頂點(diǎn)坐標(biāo)中,坐標(biāo)(-100,-100,-100)為最小坐標(biāo),坐標(biāo)(100,100,100)為最大坐標(biāo),將這兩個(gè)頂點(diǎn)連線的中點(diǎn)作為包圍球的中心點(diǎn),將這兩個(gè)頂點(diǎn)之間的距離作為包圍球直徑,則此正方體三維模型的包圍球中心點(diǎn)坐標(biāo)為(0,0,0),也即此正方體三維模型的中心點(diǎn)坐標(biāo)為(0,0,0),包圍球半徑為141,則計(jì)算得到了該正方體三維模型的包圍球。

步驟302:分別計(jì)算第三三維模型的各個(gè)頂點(diǎn)坐標(biāo)與第三三維模型的中心點(diǎn)坐標(biāo)之差,獲得第三三維模型的各個(gè)頂點(diǎn)與第三三維模型的中心點(diǎn)之間的相對(duì)坐標(biāo)。

將第三三維模型的每個(gè)頂點(diǎn)坐標(biāo)分別與第三三維模型的中心點(diǎn)坐標(biāo)做差,得到的一組坐標(biāo)為第三三維模型的各個(gè)頂點(diǎn)與第三三維模型的中心點(diǎn)之間的相對(duì)坐標(biāo)。

繼續(xù)以上述舉例為例,將正方體三維模型的各個(gè)頂點(diǎn)坐標(biāo)分別減去正方體三維模型的中心點(diǎn)坐標(biāo)(0,0,0),得到該正方體三維模型的各個(gè)頂點(diǎn)與正方體三維模型的中心點(diǎn)之間的相對(duì)坐標(biāo)為:

(-100,-100,-100)、

(-100,100,-100)、

(100,100,-100)、

(100,-100,-100)、

(-100,-100,100)、

(-100,100,100)、

(100,100,100)、

(100,-100,100)

步驟303:將各個(gè)相對(duì)坐標(biāo)除以包圍球半徑后乘以預(yù)設(shè)固定值,獲得各個(gè)轉(zhuǎn)換后的頂點(diǎn)坐標(biāo),各個(gè)轉(zhuǎn)換后的頂點(diǎn)坐標(biāo)的坐標(biāo)值均為整數(shù)型。

為了將各個(gè)頂點(diǎn)坐標(biāo)轉(zhuǎn)換為整數(shù)型而不損失太多精度,可以將得到的各個(gè)相對(duì)坐標(biāo)除以包圍球半徑后乘以預(yù)設(shè)固定值,預(yù)設(shè)固定值為一整數(shù)值可以根據(jù)經(jīng)驗(yàn)設(shè)定,得到的一組坐標(biāo)即為轉(zhuǎn)換后的一組頂點(diǎn)坐標(biāo)。

繼續(xù)以上述舉例為例進(jìn)行計(jì)算,將該正方體三維模型的各個(gè)頂點(diǎn)與正方體三維模型的中心點(diǎn)之間的相對(duì)坐標(biāo)分別除以包圍球半徑141可以得到如下的一組坐標(biāo):

(-0.70921985,-0.70921985,-0.70921985)、

(-0.70921985,0.70921985,-0.70921985)、

(0.70921985,0.70921985,-0.70921985)、

(0.70921985,-0.70921985,-0.70921985)、

(-0.70921985,-0.70921985,0.70921985)、

(-0.70921985,0.70921985,0.70921985)、

(0.70921985,0.70921985,0.70921985)、

(0.70921985,-0.70921985,0.70921985)

然后乘以預(yù)設(shè)固定值轉(zhuǎn)換為整數(shù)型,例如預(yù)設(shè)固定值為8192,則得到的一組轉(zhuǎn)換后的頂點(diǎn)坐標(biāo)為:

(-5810,-5810,-5810)、

(-5810,5810,-5810)、

(5810,5810,-5810)、

(5810,-5810,-5810)、

(-5810,-5810,5810)、

(-5810,5810,5810)、

(5810,5810,5810)、

(5810,-5810,5810)

步驟304:各個(gè)轉(zhuǎn)換后的頂點(diǎn)坐標(biāo)作為第二三維模型的頂點(diǎn)坐標(biāo),生成第二三維模型。

各個(gè)轉(zhuǎn)換后的頂點(diǎn)坐標(biāo)可以作為第二三維模型的頂點(diǎn)坐標(biāo),同時(shí)第三三維模型各個(gè)頂點(diǎn)的紋理坐標(biāo)以及法向坐標(biāo)可以繼續(xù)作為第二三維模型各個(gè)頂點(diǎn)的紋理坐標(biāo)以及法向坐標(biāo),從而生成第二三維模型。另外,預(yù)設(shè)固定值、第三三維模型的中心點(diǎn)坐標(biāo)以及包圍球半徑需要保存在第二三維模型中,以便于終端在獲得第二三維模型后進(jìn)行壓縮還原處理。這樣以整數(shù)型存儲(chǔ)的三維模型是以字節(jié)對(duì)齊的方式來存儲(chǔ),比用為使用字節(jié)對(duì)齊方式來存儲(chǔ)浮點(diǎn)型三維模型數(shù)據(jù)量更小,更容易壓縮。

轉(zhuǎn)換后的頂點(diǎn)坐標(biāo)為整數(shù)型,從理論上來講,會(huì)比原來使用32位浮點(diǎn)型數(shù)據(jù)損失一定的精度,但其16位整數(shù)型的精度可以全部用于表達(dá)與模型尺寸相關(guān)的數(shù)值。也就是模型越大其精度越小,模型越小精度越高,其精度可以達(dá)到模型尺寸的萬分之二以內(nèi)。以上例中的正方體三維模型為例,對(duì)轉(zhuǎn)換后的頂點(diǎn)坐標(biāo)進(jìn)行逆操作,即除以預(yù)設(shè)固定值(例如8192),再乘以包圍球半徑141,加上正方體三維模型的中心點(diǎn)(0,0,0)可還原正方體三維模型的原有頂點(diǎn)坐標(biāo)為:

(-100.001220703125,-100.001220703125,-100.001220703125)、

(-100.001220703125,100.001220703125,-100.001220703125)、

(100.001220703125,100.001220703125,-100.001220703125)、

(100.001220703125,-100.001220703125,-100.001220703125)、

(-100.001220703125,-100.001220703125,100.001220703125)、

(-100.001220703125,100.001220703125,100.001220703125)、

(100.001220703125,100.001220703125,100.001220703125)、

(100.001220703125,-100.001220703125,100.001220703125)

由此可見損失的精度在模型尺寸的萬分之2以內(nèi),損失非常輕微,對(duì)終端渲染影響很小。而且,模型損失的精度與模型的尺寸有關(guān),不會(huì)因?yàn)槟P偷某叽鐦O端而導(dǎo)致模型的外形畸變。

這樣,本申請(qǐng)實(shí)施例對(duì)建筑物的三維模型進(jìn)行了充分壓縮,數(shù)據(jù)量較小,同時(shí)其存儲(chǔ)數(shù)據(jù)為字節(jié)對(duì)齊非常利于在數(shù)據(jù)傳輸時(shí)使用通用數(shù)據(jù)傳輸算法進(jìn)行壓縮傳輸,從而壓縮后的三維模型在由服務(wù)器到終端的傳輸過程中傳輸速度較快,并且壓縮后的頂點(diǎn)坐標(biāo)可以直接進(jìn)行顯示渲染而無須特殊處理,以使室內(nèi)地圖在終端顯示時(shí)加載速度較快。

參見圖5所示,示出了本申請(qǐng)實(shí)施例中提供的生成室內(nèi)地圖的方法實(shí)施例二,本實(shí)施例可以應(yīng)用于終端,終端具體可以為智能手機(jī)、平板電腦、電子書閱讀器、mp3(movingpictureexpertsgroupaudiolayeriii,動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面3)播放器、mp4(movingpictureexpertsgroupaudiolayeriv,動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面3)播放器、膝上型便攜計(jì)算機(jī)和臺(tái)式計(jì)算機(jī)等等,本實(shí)施例可以包括以下步驟:

步驟501:接收包括建筑物在平面地圖上的位置信息的室內(nèi)地圖查詢指令。

終端首先可以渲染顯示平面地圖,在進(jìn)行渲染時(shí)平面地圖可以動(dòng)態(tài)地取得平面地圖的位置信息,例如地圖的分塊信息。終端中的地圖渲染程序會(huì)根據(jù)用戶的操作調(diào)整視角,當(dāng)視角改變時(shí)會(huì)計(jì)算當(dāng)前終端屏幕需要顯示的地圖位置信息,并顯示該位置信息對(duì)應(yīng)的平面地圖。在進(jìn)行地圖渲染時(shí),如果當(dāng)前地圖位置信息保存有對(duì)應(yīng)的第二三維模型,即代表該位置信息對(duì)應(yīng)的建筑物可以顯示室內(nèi)地圖,則出現(xiàn)此處有室內(nèi)地圖信息的提示按鈕。用戶通過觸發(fā)該提示按鈕,從而終端可以接收到包括建筑物在平面地圖上的位置信息的室內(nèi)地圖查詢指令。

步驟502:從服務(wù)器獲取位置信息對(duì)應(yīng)的第二三維模型。

根據(jù)室內(nèi)地圖查詢指令中包括的建筑物在平面地圖上的位置信息,終端向服務(wù)器請(qǐng)求獲取該位置信息對(duì)應(yīng)的第二三維模型。

步驟503:將第二三維模型進(jìn)行壓縮還原,生成第三三維模型。

由于第二三維模型為一個(gè)壓縮后的三維模型,需要進(jìn)行本申請(qǐng)實(shí)施例中頂點(diǎn)壓縮算法的逆運(yùn)算,以進(jìn)行壓縮還原從而生成第三三維模型,用第三三維模型進(jìn)行室內(nèi)地圖展示。

在本申請(qǐng)一些可能的實(shí)現(xiàn)方式中,在上述實(shí)施例中將第二三維模型進(jìn)行壓縮還原,生成第三三維模型的具體實(shí)現(xiàn)可以包括:

將第二三維模型的頂點(diǎn)坐標(biāo)除以預(yù)設(shè)固定值后乘以包圍球半徑,獲得第三三維模型的各個(gè)頂點(diǎn)與第三三維模型的中心點(diǎn)之間的相對(duì)坐標(biāo);將各個(gè)相對(duì)坐標(biāo)加上第三三維模型的中心點(diǎn)坐標(biāo),獲得第三三維模型的各個(gè)頂點(diǎn)坐標(biāo),生成第三三維模型,預(yù)設(shè)固定值、包圍球半徑以及第三三維模型的中心點(diǎn)坐標(biāo)是從服務(wù)器獲取的。

繼續(xù)以上述舉例為例,第二三維模型中的各個(gè)頂點(diǎn)坐標(biāo)為:

(-5810,-5810,-5810)、

(-5810,5810,-5810)、

(5810,5810,-5810)、

(5810,-5810,-5810)、

(-5810,-5810,5810)、

(-5810,5810,5810)、

(5810,5810,5810)、

(5810,-5810,5810)

將第二三維模型中的各個(gè)頂點(diǎn)坐標(biāo)除以預(yù)設(shè)固定值(例如8192),再乘以包圍球半徑141,加上第三三維模型的中心點(diǎn)(0,0,0),獲得第三三維模型的各個(gè)頂點(diǎn)坐標(biāo):

(-100.001220703125,-100.001220703125,-100.001220703125)、

(-100.001220703125,100.001220703125,-100.001220703125)、

(100.001220703125,100.001220703125,-100.001220703125)、

(100.001220703125,-100.001220703125,-100.001220703125)、

(-100.001220703125,-100.001220703125,100.001220703125)、

(-100.001220703125,100.001220703125,100.001220703125)、

(100.001220703125,100.001220703125,100.001220703125)、

(100.001220703125,-100.001220703125,100.001220703125)

即還原后的頂點(diǎn)坐標(biāo)可以作為第三三維模型的頂點(diǎn)坐標(biāo),同時(shí)第二三維模型各個(gè)頂點(diǎn)的紋理坐標(biāo)以及法向坐標(biāo)可以繼續(xù)作為第三三維模型各個(gè)頂點(diǎn)的紋理坐標(biāo)以及法向坐標(biāo),從而生成第三三維模型。

步驟504:對(duì)第三三維模型進(jìn)行渲染顯示,以進(jìn)行建筑物的室內(nèi)地圖展示。

在實(shí)際應(yīng)用中,為了更好的展示室內(nèi)地圖,會(huì)將正常顯示的平面地圖作暗化處理,同時(shí)隱藏該室內(nèi)地圖所在的建筑的外輪廓圖,并拉低視角,通過對(duì)第三三維模型進(jìn)行渲染顯示,讓用戶在建筑物場景內(nèi)瀏覽。此時(shí)場景的瀏覽會(huì)做出限制,不能讓室內(nèi)地圖移出終端的顯示屏幕。

在實(shí)際應(yīng)用中,本申請(qǐng)實(shí)施例中第二三維模型是可以直接被現(xiàn)有的終端顯卡所支持的,可以直接用opengl渲染出來而無須做過多處理,而三維模型數(shù)據(jù)卻減少了一倍,極大地加快了三維模型的渲染速度。opengl渲染的具體方法是,將第三三維模型的中心點(diǎn)以及包圍球半徑傳入opengl渲染的頂點(diǎn)著色器中,然后頂點(diǎn)著色器根據(jù)信息將第二三維模型的各個(gè)頂點(diǎn)坐標(biāo)還原成世界坐標(biāo)系的頂點(diǎn)坐標(biāo)(即第三三維模型的頂點(diǎn)坐標(biāo)),從而實(shí)現(xiàn)對(duì)第三三維模型進(jìn)行渲染顯示,以進(jìn)行建筑物的室內(nèi)地圖展示。這樣第二三維模型的頂點(diǎn)坐標(biāo)并沒有做特別處理就可以直接利用顯卡的硬件特性進(jìn)行三維渲染。

另外,當(dāng)用戶點(diǎn)擊退出室內(nèi)地圖瀏覽時(shí),室內(nèi)地圖的顯示關(guān)閉,重新顯示平面地圖。

這樣,本申請(qǐng)實(shí)施例中在使用終端的用戶需要顯示該建筑物的室內(nèi)地圖時(shí),終端可以加載壓縮后的三維模型作為室內(nèi)地圖顯示,由于三維模型包括的建筑物室內(nèi)信息非常全面,可以以更多的顯示要素展示室內(nèi)場景,從而使室內(nèi)地圖的展示與建筑物內(nèi)部的真實(shí)環(huán)境較為接近。

參見圖6所示,示出了生成室內(nèi)地圖的裝置實(shí)施例一,該裝置實(shí)施例可以應(yīng)用于服務(wù)器,可以包括:

獲取單元601,用于獲取建筑物的第一三維模型。

壓縮單元602,用于將第一三維模型進(jìn)行壓縮,生成第二三維模型。

保存單元603,用于確定建筑物在平面地圖上的位置信息,將建筑物在平面地圖上的位置信息與第二三維模型對(duì)應(yīng)保存,以使終端在接收到包括建筑物在平面地圖上的位置信息的室內(nèi)地圖查詢指令時(shí),獲取第二三維模型進(jìn)行建筑物的室內(nèi)地圖展示。

在本申請(qǐng)一些可能的實(shí)現(xiàn)方式中,壓縮單元可以包括:

提取子單元,用于從第一三維模型中提取室內(nèi)地圖所需的三維建筑信息,獲得第三三維模型;

壓縮子單元,用于將第三三維模型的各個(gè)頂點(diǎn)坐標(biāo)進(jìn)行壓縮,生成第二三維模型。

在本申請(qǐng)一些可能的實(shí)現(xiàn)方式中,壓縮子單元可以包括:

第一計(jì)算子單元,用于計(jì)算第三三維模型的包圍球,將包圍球的中心點(diǎn)作為第三三維模型的中心點(diǎn);

第二計(jì)算子單元,用于分別計(jì)算第三三維模型的各個(gè)頂點(diǎn)坐標(biāo)與第三三維模型的中心點(diǎn)坐標(biāo)之差,獲得第三三維模型的各個(gè)頂點(diǎn)與第三三維模型的中心點(diǎn)之間的相對(duì)坐標(biāo);

第三計(jì)算子單元,用于將各個(gè)相對(duì)坐標(biāo)除以包圍球半徑后乘以預(yù)設(shè)固定值,獲得各個(gè)轉(zhuǎn)換后的頂點(diǎn)坐標(biāo),各個(gè)轉(zhuǎn)換后的頂點(diǎn)坐標(biāo)的坐標(biāo)值均為整數(shù)型;

生成子單元,用于各個(gè)轉(zhuǎn)換后的頂點(diǎn)坐標(biāo)作為第二三維模型的頂點(diǎn)坐標(biāo),生成第二三維模型。

參見圖7所示,示出了生成室內(nèi)地圖的裝置實(shí)施例二,該裝置實(shí)施例可以應(yīng)用于終端,可以包括:

接收單元701,用于接收包括建筑物在平面地圖上的位置信息的室內(nèi)地圖查詢指令。

獲取單元702,用于從服務(wù)器獲取位置信息對(duì)應(yīng)的第二三維模型。

壓縮還原單元703,用于將第二三維模型進(jìn)行壓縮還原,生成第三三維模型。

顯示單元704,用于對(duì)第三三維模型進(jìn)行渲染顯示,以進(jìn)行建筑物的室內(nèi)地圖展示。

在本申請(qǐng)一些可能的實(shí)現(xiàn)方式中,壓縮還原單元可以包括:

第一計(jì)算子單元,用于將第二三維模型的頂點(diǎn)坐標(biāo)除以預(yù)設(shè)固定值后乘以包圍球半徑,獲得第三三維模型的各個(gè)頂點(diǎn)與第三三維模型的中心點(diǎn)之間的相對(duì)坐標(biāo);

第二計(jì)算子單元,用于將各個(gè)相對(duì)坐標(biāo)加上第三三維模型的中心點(diǎn)坐標(biāo),獲得第三三維模型的各個(gè)頂點(diǎn)坐標(biāo),生成第三三維模型,預(yù)設(shè)固定值、包圍球半徑以及第三三維模型的中心點(diǎn)坐標(biāo)是從服務(wù)器獲取的。

這樣,本申請(qǐng)實(shí)施例通過獲取建筑物的三維模型,將三維模型進(jìn)行壓縮后與該建筑物在平面地圖上的位置信息對(duì)應(yīng)保存,在使用終端的用戶需要顯示該建筑物的室內(nèi)地圖時(shí),終端可以加載壓縮后的三維模型作為室內(nèi)地圖顯示,由于三維模型包括的建筑物室內(nèi)信息非常全面,可以以更多的顯示要素展示室內(nèi)場景,從而使室內(nèi)地圖的展示與建筑物內(nèi)部的真實(shí)環(huán)境較為接近。

需要說明的是,本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對(duì)于實(shí)施例公開的系統(tǒng)或裝置而言,由于其與實(shí)施例公開的方法相對(duì)應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。

還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。

結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(ram)、內(nèi)存、只讀存儲(chǔ)器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動(dòng)磁盤、cd-rom、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。

對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本申請(qǐng)。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請(qǐng)的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本申請(qǐng)將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。

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