一種基于多源地圖的點(diǎn)位聚合方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)字地圖技術(shù)領(lǐng)域,具體涉及一種基于多源地圖的點(diǎn)位聚合方法及裝 置。
【背景技術(shù)】
[0002] 近年來(lái),新技術(shù)的不斷涌現(xiàn),使得網(wǎng)頁(yè)功能更加豐富。數(shù)字地圖創(chuàng)造性地將傳統(tǒng)地 圖與網(wǎng)頁(yè)相結(jié)合,人們可以通過數(shù)字地圖查詢自己關(guān)注的任何地點(diǎn)的地理位置信息,極大 豐富和方便了人們的生活。從最初的"無(wú)縫"圖片發(fā)展到現(xiàn)在的二維、三維,數(shù)字地圖以其特 有的優(yōu)勢(shì),得到了人們?cè)絹?lái)越多的青睞。
[0003] 在用戶體驗(yàn)上,數(shù)字地圖為用戶提供了一種信息顯示更精準(zhǔn)全面的新的信息查詢 方式,查詢結(jié)果通常都是以標(biāo)記形式展現(xiàn),當(dāng)在數(shù)字地圖中查找所關(guān)注的地點(diǎn)時(shí),數(shù)字地圖 會(huì)將整個(gè)地區(qū)的地理范圍內(nèi)每個(gè)相應(yīng)地點(diǎn)的位置以標(biāo)記點(diǎn)的方式標(biāo)識(shí)出來(lái)。
[0004] 然而用戶的可視區(qū)域有限,在當(dāng)前縮放級(jí)別下,如果位置標(biāo)記太多,則會(huì)出現(xiàn)成千 上萬(wàn)個(gè)標(biāo)記點(diǎn)的情況同時(shí)加載在地圖中的現(xiàn)象,部分標(biāo)記點(diǎn)之間重疊覆蓋顯得雜亂無(wú)章, 無(wú)法清楚地看到地理位置信息的問題,影響地圖視覺效果和操作,并且過多的標(biāo)記點(diǎn)會(huì)覆 蓋地圖底圖,占用系統(tǒng)資源造成地圖加載卡頓,極大影響了用戶的體驗(yàn)。
[0005] 圖1為現(xiàn)有地圖中縮小的標(biāo)記點(diǎn)在較小地圖縮放層級(jí)上的顯示示意圖,圖2為現(xiàn)有 地圖中放大的標(biāo)記點(diǎn)在較大地圖層級(jí)上的顯示示意圖,可以看出,各標(biāo)記點(diǎn)之間彼此覆蓋, 無(wú)法清楚地看到地理位置信息,也降低了地圖的加載速度。
[0006] 為此,需要一種聚合方法,讓標(biāo)記點(diǎn)能根據(jù)地圖的層級(jí),進(jìn)行合理的聚合。目前,谷 歌、百度、高德等地圖提供商提供了點(diǎn)位聚合算法以解決上述問題。
[0007] 例如,谷歌地圖采用了基于方格和距離的點(diǎn)聚合算法,具體為:初始時(shí)沒有任何已 知聚合點(diǎn),然后對(duì)每個(gè)點(diǎn)進(jìn)行迭代,計(jì)算一個(gè)點(diǎn)的外包正方形,若此點(diǎn)的外包正方形與現(xiàn)有 的聚合點(diǎn)的外包正方形不相交,則新建聚合點(diǎn);若相交,則把該點(diǎn)聚合到該聚合點(diǎn)中,若點(diǎn) 與多個(gè)已知的聚合點(diǎn)的外包正方形相交,則計(jì)算該點(diǎn)到到聚合點(diǎn)的距離,聚合到距離最近 的聚合點(diǎn)中,如此循環(huán),直到所有點(diǎn)都遍歷完畢,每個(gè)縮放級(jí)別都重新遍歷所有原始點(diǎn)要 素。
[0008] 但上述點(diǎn)位聚合算法只能比較準(zhǔn)確或大致反應(yīng)標(biāo)記點(diǎn)的位置信息,精確度不高; 并且現(xiàn)有地圖提供商提供的點(diǎn)聚合算法,缺少一種對(duì)各種地圖均能進(jìn)行處理的機(jī)制,使點(diǎn) 聚合算法能夠針對(duì)不同的地圖進(jìn)行呈現(xiàn),通常只適用于一種或同種投影類型的地圖。譬如, 百度的點(diǎn)聚合算法,只能適用于百度投影方式的地圖,對(duì)于其他地圖,因?yàn)橥队胺绞讲煌?者不同廠商會(huì)對(duì)地圖進(jìn)行地圖加密,聚合算法會(huì)出現(xiàn)很大偏差,則并不適用。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明的目的是提供一種基于多源地圖的點(diǎn)位聚合方法及裝置,解決現(xiàn)有技術(shù)聚 合方法只能針對(duì)特定地圖、以及精度不高的問題。能夠適用于不同地圖,且精確度較高,能 夠較精確地反映標(biāo)記點(diǎn)所在的位置信息
[0010] 為了實(shí)現(xiàn)上述目的,本發(fā)明技術(shù)方案如下:
[0011] -種基于多源地圖的點(diǎn)位聚合方法,所述聚合方法包括:
[0012] 對(duì)于待標(biāo)記地圖,將標(biāo)記點(diǎn)的經(jīng)煒度坐標(biāo)轉(zhuǎn)換為地圖上的像素坐標(biāo);
[0013] 根據(jù)標(biāo)記點(diǎn)的像素坐標(biāo)以及給定的聚合距離,將標(biāo)記點(diǎn)聚合為第一聚合類;
[0014] 根據(jù)第一聚合類之間的距離以及給定的聚合距離,對(duì)第一聚合類再次進(jìn)行聚合, 得到第二聚合類,并將第二聚合類標(biāo)示在待標(biāo)記地圖上。
[0015] 其中,所述對(duì)于待標(biāo)記地圖,將標(biāo)記點(diǎn)的經(jīng)煒度坐標(biāo)轉(zhuǎn)換為地圖上的像素坐標(biāo),包 括:
[0016] 對(duì)于待標(biāo)記地圖,如果待標(biāo)記地圖是已知切片方案地圖,且該切片方案地圖對(duì)應(yīng) 有已知的坐標(biāo)像素轉(zhuǎn)換關(guān)系,則根據(jù)已知的坐標(biāo)像素轉(zhuǎn)換關(guān)系對(duì)待標(biāo)記地圖進(jìn)行經(jīng)煒度坐 標(biāo)與像素坐標(biāo)之間的轉(zhuǎn)換處理;
[0017] 對(duì)于待標(biāo)記地圖,如果待標(biāo)記地圖是未知切片方案地圖,則先確定一種已知的投 影方式,獲取該待標(biāo)記地圖在已知投影方式下的地圖,通過待標(biāo)記地圖上的樣本點(diǎn)與已知 投影方式下的地圖對(duì)應(yīng)點(diǎn)的關(guān)系擬合出待標(biāo)記地圖上的坐標(biāo)像素轉(zhuǎn)換關(guān)系,根據(jù)擬合出的 坐標(biāo)像素轉(zhuǎn)換關(guān)系對(duì)待標(biāo)記地圖進(jìn)行經(jīng)煒度坐標(biāo)與像素坐標(biāo)之間的轉(zhuǎn)換處理。
[0018] 其中,所述根據(jù)標(biāo)記點(diǎn)的像素坐標(biāo)以及給定的聚合距離,將標(biāo)記點(diǎn)聚合為第一聚 合類,包括:
[0019] 對(duì)于每個(gè)標(biāo)記點(diǎn),將其像素坐標(biāo)同除以聚合距離的值;
[0020] 取所得的商的整數(shù)部分作為該標(biāo)記點(diǎn)的新坐標(biāo);
[0021] 將新坐標(biāo)相同的標(biāo)記點(diǎn)放入同一個(gè)第一聚合類。
[0022]其中,所述根據(jù)第一聚合類之間的距離以及給定的聚合距離,對(duì)第一聚合類再次 進(jìn)行聚合,得到第二聚合類,包括:
[0023]計(jì)算出第一聚合類的中心坐標(biāo);
[0024] 對(duì)于每一個(gè)第一聚合類,以其中心坐標(biāo)計(jì)算該第一聚合類與周圍左、左上、上、右 上、右、右下、下、左下方向上的其他第一聚合類的距離,將與該第一聚合類距離小于等于聚 合距離的其他第一聚合類合并為第二聚合類。
[0025] 其中,所述聚合距離為設(shè)定的像素?cái)?shù)量,所述第一聚合類的中心坐標(biāo)為第一聚合 類中所有標(biāo)記點(diǎn)像素坐標(biāo)的均值,所述第二聚合類在待標(biāo)記地圖上的坐標(biāo)為第二聚合類的 中心坐標(biāo),所述第二聚合類的中心坐標(biāo)為第二聚合類中所有標(biāo)記點(diǎn)像素坐標(biāo)的均值。
[0026] 本發(fā)明還提出了一種基于多源地圖的點(diǎn)位聚合裝置,所述聚合裝置包括:
[0027] 坐標(biāo)像素轉(zhuǎn)換模塊,用于對(duì)于待標(biāo)記地圖,將標(biāo)記點(diǎn)的經(jīng)煒度坐標(biāo)轉(zhuǎn)換為地圖上 的像素坐標(biāo);
[0028]第一聚合模塊,用于根據(jù)標(biāo)記點(diǎn)的像素坐標(biāo)以及給定的聚合距離,將標(biāo)記點(diǎn)聚合 為第一聚合類;
[0029]第二聚合模塊,用于根據(jù)第一聚合類之間的距離以及給定的聚合距離,對(duì)第一聚 合類再次進(jìn)行聚合,得到第二聚合類,并將第二聚合類標(biāo)示在待標(biāo)記地圖上。
[0030]本發(fā)明提出了一種基于多源地圖的點(diǎn)位聚合方法及裝置,通過坐標(biāo)像素轉(zhuǎn)換關(guān)系 將標(biāo)記點(diǎn)的經(jīng)煒度坐標(biāo)轉(zhuǎn)換為像素坐標(biāo),根據(jù)像素坐標(biāo)與聚合距離對(duì)標(biāo)記點(diǎn)進(jìn)行聚合。能 夠適用于任何地圖,聚合的準(zhǔn)確率高。
【附圖說明】
[0031]圖1為現(xiàn)有地圖中縮小的標(biāo)記點(diǎn)在較小地圖縮放層級(jí)上的顯示示意圖;
[0032]圖2為現(xiàn)有地圖中放大的標(biāo)記點(diǎn)在較大地圖層級(jí)上的顯示示意圖;
[0033] 圖3為本發(fā)明點(diǎn)位聚合方法流程圖;
[0034] 圖4為為發(fā)明實(shí)施例第一聚合類聚合示意圖;
[0035] 圖5為經(jīng)過兩次聚合后的聚合類的示意圖。
【具體實(shí)施方式】
[0036]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明技術(shù)方案做進(jìn)一步詳細(xì)說明,以下實(shí)施例不構(gòu)成 對(duì)本發(fā)明的限定。
[0037] 如圖3所示,本實(shí)施例一種基于多源地圖的點(diǎn)位聚合方法,包括以下步驟:
[0038] 步驟Sl、對(duì)于待標(biāo)記地圖,將標(biāo)記點(diǎn)的經(jīng)煒度坐標(biāo)轉(zhuǎn)換為地圖上的像素坐標(biāo)。
[0039] 經(jīng)煒度坐標(biāo)與地圖上的像素坐標(biāo)的轉(zhuǎn)換,根據(jù)不同的源地圖,對(duì)應(yīng)的算法不同。目 前市場(chǎng)上采用的地圖分為兩類:一類采用標(biāo)準(zhǔn)GoogleOnline切片方案地圖,如高德、谷歌 等;另一類采用非GoogleOnline切片方案地圖,如百度地圖。其中,前者地圖上的經(jīng)煒度坐 標(biāo)和像素坐標(biāo)之間的相互換算較為簡(jiǎn)單,這種坐標(biāo)換算的方法十分成熟,精度也十分高,而 后者則較難,同時(shí)由于加密算法等原因,其坐標(biāo)換算的算法較為復(fù)雜。
[0040] 本實(shí)施例的坐標(biāo)像素轉(zhuǎn)換算法,解決全球范圍已知投影地圖坐標(biāo)系與經(jīng)煒度坐標(biāo) 系之間的換算問題。對(duì)于一個(gè)未知投影坐標(biāo)系的地圖,或者說該地圖上的各個(gè)點(diǎn)對(duì)應(yīng)的經(jīng) 煒度坐標(biāo)和像素坐標(biāo)未知,該算法能夠得出該地圖上的坐標(biāo)系,對(duì)地圖上的經(jīng)煒度坐標(biāo)和 像素坐標(biāo)進(jìn)行相互換算,即能使不同地圖提供商的地圖能夠準(zhǔn)確地在同一個(gè)平臺(tái)中顯示。 [0041 ]其中,將標(biāo)記點(diǎn)的經(jīng)煒度坐標(biāo)轉(zhuǎn)換為地圖上的像素坐標(biāo),包括:
[0042] 對(duì)于待標(biāo)記地圖,如果待標(biāo)記地圖是已知切片方案地圖,且該切片方案地圖對(duì)應(yīng) 有已知的坐標(biāo)像素轉(zhuǎn)換關(guān)系,則根據(jù)已知的坐標(biāo)像素轉(zhuǎn)換關(guān)系對(duì)待標(biāo)記地圖進(jìn)行經(jīng)煒度坐 標(biāo)與像素坐標(biāo)之間的轉(zhuǎn)換處理。
[0043] 例如,待標(biāo)記地圖為GoogleOnline切片方案,GoogleOnline切片方案每張瓦片的 大小為256個(gè)像素,切片的原點(diǎn)為-180,85 .05 1 12877980659,根據(jù)墨卡托投影 (WebMercator)的投影特征和具體的切片方案,可以得出GoogleOnline切片方案地圖的坐 標(biāo)轉(zhuǎn)換公式如下:
[0044] 像素坐標(biāo)轉(zhuǎn)換至經(jīng)煒度坐標(biāo):
[0048] lng = 360*xx
[0049] 經(jīng)煒度坐標(biāo)轉(zhuǎn)換至像素坐標(biāo)公式為:
[0053] x = xx*mapSizeX+0 · 5
[0054] y = yy*mapSizeY+0 · 5
[0055]其中x,y為像素坐標(biāo),mapSizeX為當(dāng)前層級(jí)的X方