一種點對點的瓦片地圖動態(tài)投影方法及裝置制造方法
【專利摘要】本發(fā)明提供一種點對點的瓦片地圖動態(tài)投影方法及裝置,屬于網(wǎng)絡地圖【技術領域】,該方法包括:獲取客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng),確定用戶請求的瓦片地圖范圍;根據(jù)用戶請求的瓦片地圖范圍和地圖顯示比例尺,確定最佳地圖顯示層級和在該層級時對應的瓦片的行列位置,構成瓦片數(shù)據(jù)序列;確定用戶請求的瓦片數(shù)據(jù)序列中的每一個瓦片投影到客戶端顯示坐標系統(tǒng)下的矩形范圍,并將該矩形范圍轉(zhuǎn)換為瓦片數(shù)據(jù)顯示的客戶坐標范圍;依據(jù)各瓦片數(shù)據(jù)顯示的客戶坐標范圍,生成同樣大小的內(nèi)存位圖,并采用點對點的瓦片地圖重采樣方法繪制瓦片地圖。上述方案通過點對點的動態(tài)投影轉(zhuǎn)換繪制瓦片地圖,實現(xiàn)了瓦片地圖嵌入至GIS系統(tǒng)中的動態(tài)投影轉(zhuǎn)換和無縫拼接。
【專利說明】一種點對點的瓦片地圖動態(tài)投影方法及裝置
【技術領域】
[0001]本發(fā)明涉及網(wǎng)絡地圖發(fā)布、地圖資源客戶端整合【技術領域】,特別是指一種點對點的瓦片地圖動態(tài)投影方法及裝置。
【背景技術】
[0002]與網(wǎng)絡地理信息系統(tǒng)(WebGeographic Informat1n System,WebGIS)相比,桌面端地理信息系統(tǒng)(Geographic Informat1n System,GIS)具有更為豐富的功能和更強的分析處理能力。復雜的專業(yè)分析處理功能仍然需要在本地完成,尤其是在處理的數(shù)據(jù)量大、請求響應性能要求高的場合下,桌面端GIS比WebGIS更能滿足用戶的需求。將地圖瓦片技術應用到桌面端GIS中,既可以調(diào)用遠程服務器上的瓦片地圖服務,豐富GIS系統(tǒng)的數(shù)據(jù),降低基礎數(shù)據(jù)的投資,又可以借助桌面端GIS強大的分析處理能力,滿足用戶的專業(yè)需求。在某些情況下,如系統(tǒng)涉密,沒有網(wǎng)絡環(huán)境等原因,GIS系統(tǒng)只能運行于局域網(wǎng)或是單機上,而系統(tǒng)建設由于數(shù)據(jù)成本高等,底圖數(shù)據(jù)無法獲取。此時采用地圖瓦片技術,從數(shù)據(jù)提供單位獲取地圖切片庫集成到桌面端GIS系統(tǒng)中。
[0003]瓦片地圖的存儲坐標系統(tǒng)都是固定的,大多數(shù)地圖服務都采用Web墨卡托投影。在桌面端GIS中,地圖查看者可隨時修改地圖顯示坐標系統(tǒng)。對于瓦片地圖服務,如果不進行動態(tài)投影轉(zhuǎn)換直接繪制,當客戶端顯示坐標系統(tǒng)與瓦片地圖坐標系統(tǒng)不一致時,瓦片地圖和其他GIS數(shù)據(jù)就不能正確疊加顯示。
[0004]在2013年公開的發(fā)明專利申請CN 103065544 A披露了一種動態(tài)地圖投影下的網(wǎng)絡地圖配準及繪制方法,它首先根據(jù)客戶端與服務器端的投影類型比較,進行地理范圍值動態(tài)投影轉(zhuǎn)換計算;然后利用瓦片地圖切割規(guī)則和所請求參數(shù),反計算獲得需加載的所有瓦片的行列號和地圖級別,并采用多個特征點獲取得到的瓦片地圖誤差偏移值對每個瓦片的地理范圍值進行誤差校正。在下載完每個瓦片時候,利用數(shù)據(jù)加密算法(DataEncrypt1n Standard,DES)進行加密,并按順序保存到一個與此地圖瓦片同名的ini格式文件中。待所有所需地圖瓦片下載完成后,再解密ini文件,讀取到校正后地理范圍值等數(shù)值,實現(xiàn)每個地圖瓦片的繪制。在客戶端和服務器端的地圖上,分別利用H個特征點取誤差平均值確定當前瓦片地圖的待校準值,即求取偏移量;在每個地圖瓦片下載完成時,為其計算相應的地理范圍值,并利用所確定的待校準值對這個地理范圍值進行校準處理,最后根據(jù)這四個值將地圖瓦片繪制到正確地理位置上。由于坐標系統(tǒng)之間不一定為簡單的線性關系,簡單的偏移量不能解決坐標系統(tǒng)之間的非線性轉(zhuǎn)換關系。因此,在投影繪制時不能精確地完成坐標之間的轉(zhuǎn)換,動態(tài)投影轉(zhuǎn)換存在一定誤差甚至不能真正地實現(xiàn)相鄰瓦片的無縫拼接。
【發(fā)明內(nèi)容】
[0005]本發(fā)明要解決的技術問題是提供一種點對點的瓦片地圖動態(tài)投影方法及裝置,以解決現(xiàn)有技術所存在的不能精確完成不同坐標系統(tǒng)之間的非線性轉(zhuǎn)換,以及不能實現(xiàn)相鄰瓦片無縫拼接的問題。
[0006]為解決上述技術問題,本發(fā)明實施樣例提供一種點對點的瓦片地圖動態(tài)投影方法,所述方法包括:
[0007]獲取客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng),根據(jù)客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng)確定用戶請求的瓦片地圖范圍;
[0008]根據(jù)所述用戶請求的瓦片地圖范圍和地圖顯示比例尺,確定最佳地圖顯示層級;
[0009]根據(jù)所述用戶請求的瓦片地圖范圍的左上角和右下角坐標算出在所述最佳地圖顯示層級時對應的瓦片的行列位置,構成瓦片數(shù)據(jù)序列;
[0010]確定所述瓦片數(shù)據(jù)序列中的每一個瓦片投影到客戶端顯示坐標系統(tǒng)下的矩形范圍,并將該矩形范圍轉(zhuǎn)換為瓦片數(shù)據(jù)顯示的客戶坐標范圍;
[0011]依據(jù)各瓦片數(shù)據(jù)顯示的客戶坐標范圍,生成同樣大小的內(nèi)存位圖,并采用點對點的瓦片地圖重采樣方法繪制瓦片地圖。
[0012]其中,所述用戶請求的地圖顯示范圍和所述用戶請求的瓦片地圖范圍為矩形。
[0013]其中,所述獲取客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng),根據(jù)客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng)確定用戶請求的瓦片地圖范圍,包括:
[0014]獲取客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng);
[0015]判斷客戶端顯示坐標系統(tǒng)與瓦片地圖坐標系統(tǒng)是否一致,若是,則將用戶請求的地圖顯示范圍作為用戶請求的瓦片地圖范圍;否則,
[0016]進行動態(tài)投影轉(zhuǎn)換,將用戶請求的地圖顯示范圍轉(zhuǎn)換為在瓦片地圖坐標系統(tǒng)下的用戶請求的瓦片地圖范圍。
[0017]其中,所述進行動態(tài)投影轉(zhuǎn)換,將用戶請求的地圖顯示范圍轉(zhuǎn)換為在瓦片地圖坐標系統(tǒng)下的用戶請求的瓦片地圖范圍方法包括:
[0018]在所述用戶請求的地圖顯示范圍的每個邊上按預定間隔采樣,獲取采樣點,將所有采樣點轉(zhuǎn)換到瓦片地圖坐標系統(tǒng)上,獲取轉(zhuǎn)換后采樣點的外接矩形,并將該外接矩形作為用戶請求的瓦片地圖范圍。
[0019]其中,所述點對點的瓦片地圖重采樣方法包括:
[0020]依據(jù)所述內(nèi)存位圖寬度和高度,按照預定間隔生成一個客戶坐標數(shù)組,并確定所述客戶坐標數(shù)組中所有元素在客戶端顯示坐標系統(tǒng)下的顯示坐標數(shù)組;
[0021]利用客戶端顯示坐標系統(tǒng)與瓦片地圖坐標系統(tǒng)的轉(zhuǎn)換關系,一次性將所述客戶端顯示坐標數(shù)組中所有元素轉(zhuǎn)換為瓦片地圖坐標數(shù)組;
[0022]利用雙線性內(nèi)插方法插值生成與所述內(nèi)存位圖高度和寬度一致的瓦片地圖坐標數(shù)組,重采樣后的瓦片地圖坐標數(shù)組中的每一個元素對應于所述內(nèi)存位圖各像素在瓦片地圖上的像素坐標值;
[0023]利用瓦片地圖坐標系統(tǒng)求取所述瓦片的行列位置,將該位置上的像元直接賦給所述內(nèi)存位圖對應的像素;將推算出瓦片行列位置在瓦片數(shù)據(jù)之外的像元設置為透明顏色。
[0024]其中,所述預定間隔為2個像素。
[0025]本發(fā)明實施樣例還提供一種點對點的瓦片地圖動態(tài)投影裝置,該裝置包括:
[0026]第一確定模塊,用于獲取客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng),確定用戶請求的瓦片地圖范圍,并將其發(fā)送給第二確定模塊;
[0027]第二確定模塊,用于根據(jù)所述用戶請求的瓦片地圖范圍和地圖顯示比例尺,確定最佳地圖顯示層級;
[0028]構成模塊,用于根據(jù)所述用戶請求的瓦片地圖范圍的左上角和右下角坐標算出在所述第二確定模塊確定出的最佳地圖顯示層級中對應的瓦片的行列位置,構成瓦片數(shù)據(jù)序列,并將瓦片數(shù)據(jù)序列發(fā)送給轉(zhuǎn)換模塊;
[0029]轉(zhuǎn)換模塊,用于確定所述瓦片數(shù)據(jù)序列中的每一個瓦片投影到客戶端顯示坐標系統(tǒng)下的矩形范圍,并將該矩形范圍轉(zhuǎn)換為瓦片數(shù)據(jù)顯示的客戶坐標范圍后提供給繪制模塊;
[0030]繪制模塊,用于依據(jù)各瓦片數(shù)據(jù)顯示的客戶坐標范圍,生成同樣大小的內(nèi)存位圖,并采用點對點的瓦片地圖重采樣方法繪制瓦片地圖。
[0031]其中,所述第一確定模塊包括:
[0032]獲取單元,用于獲取客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng)并將其發(fā)送給判斷單元;
[0033]判斷單元,用于判斷客戶端顯示坐標系統(tǒng)與預先存儲的瓦片地圖坐標系統(tǒng)是否一致,若一致,則將用戶請求的地圖顯示范圍作為用戶請求的瓦片地圖范圍;否則,向轉(zhuǎn)換單元發(fā)送轉(zhuǎn)換通知指令,同時將用戶請求的地圖顯示范圍和瓦片地圖坐標系統(tǒng)發(fā)送給轉(zhuǎn)換單元;
[0034]轉(zhuǎn)換單元,用于根據(jù)所述判斷單元發(fā)來的轉(zhuǎn)換通知指令,將用戶請求的地圖顯示范圍轉(zhuǎn)換為在瓦片地圖坐標系統(tǒng)下的用戶請求的瓦片地圖范圍。
[0035]本發(fā)明的上述技術方案的有益效果如下:
[0036]上述方案中,通過點對點的動態(tài)投影轉(zhuǎn)換繪制瓦片地圖,保證了瓦片上所有位置在不同坐標系統(tǒng)下的動態(tài)投影轉(zhuǎn)換關系,實現(xiàn)了瓦片地圖嵌入至GIS系統(tǒng)中的動態(tài)投影轉(zhuǎn)換和無縫拼接,又保證了瓦片地圖的繪制速度,從而拓展了網(wǎng)絡地圖服務的應用范圍。
【專利附圖】
【附圖說明】
[0037]圖1為本發(fā)明實施樣例一提供的點對點的瓦片地圖動態(tài)投影方法流程圖;
[0038]圖2為圖1中SlOl的具體實施方法流程圖;
[0039]圖3為本發(fā)明實施樣例提供的瓦片地圖動態(tài)投影轉(zhuǎn)換示意圖;
[0040]圖4為本發(fā)明實施樣例提供的瓦片地圖金字塔結構圖;
[0041]圖5為本發(fā)明實施樣例提供的瓦片地圖切片示意圖;
[0042]圖6為本發(fā)明實施樣例提供的地圖坐標系;
[0043]圖7為本發(fā)明實施樣例提供的屏幕坐標系;
[0044]圖8為本發(fā)明實施樣例提供的高斯投影下加載google地圖示意圖;
[0045]圖9為本發(fā)明實施樣例提供的高斯投影下顯示google地圖示意圖;
[0046]圖10為本發(fā)明實施樣例二提供的點對點的瓦片地圖動態(tài)投影裝置結構示意圖;
[0047]圖11為圖10中第一確定模塊101的詳細結構示意圖。
【具體實施方式】
[0048]為使本發(fā)明要解決的技術問題、技術方案和優(yōu)點更加清楚,下面將結合附圖及具體實施樣例進行詳細描述。
[0049]本發(fā)明針對現(xiàn)有的不能精確完成不同坐標系統(tǒng)之間的非線性轉(zhuǎn)換,以及不能實現(xiàn)相鄰瓦片無縫拼接的問題,提供一種點對點的瓦片地圖動態(tài)投影方法及裝置。
[0050]實施樣例一
[0051]如圖1所示為本發(fā)明實施樣例一提供的點對點的瓦片地圖動態(tài)投影方法流程圖,所述方法包括以下步驟:
[0052]SlOl:獲取客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng),根據(jù)客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng)確定用戶請求的瓦片地圖范圍。
[0053]S102:根據(jù)用戶請求的瓦片地圖范圍和地圖顯示比例尺,確定最佳地圖顯示層級。
[0054]S103:根據(jù)用戶請求的瓦片地圖范圍的左上角和右下角坐標算出在所述最佳地圖顯示層級時對應的瓦片的行列位置,構成瓦片數(shù)據(jù)序列。
[0055]S104:確定所述瓦片數(shù)據(jù)序列中的每一個瓦片投影到客戶端顯示坐標系統(tǒng)下的矩形范圍,并將該矩形范圍轉(zhuǎn)換為瓦片數(shù)據(jù)顯示的客戶坐標范圍。
[0056]S105:依據(jù)各瓦片數(shù)據(jù)顯示的客戶坐標范圍,生成同樣大小的內(nèi)存位圖,并采用點對點的瓦片地圖重采樣方法繪制瓦片地圖。
[0057]以下對圖1中各步驟的具體實施方法進行詳細說明。
[0058]上述方法中,由于在多數(shù)情況下,客戶端顯示坐標系統(tǒng)和瓦片地圖坐標系統(tǒng)不同,需要進行二者間的轉(zhuǎn)換。圖2為圖1中SlOl的具體實施方法流程圖,如圖2所示,確定用戶請求的瓦片地圖范圍的方法包括以下步驟:
[0059]SlOll:獲取客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng)。
[0060]S1012:判斷客戶端顯示坐標系統(tǒng)與瓦片地圖坐標系統(tǒng)是否一致?若是,則執(zhí)行S1013,否則執(zhí)行S1014。
[0061]S1013:將用戶請求的地圖顯示范圍作為用戶請求的瓦片地圖范圍。
[0062]S1014:進行動態(tài)投影轉(zhuǎn)換,將用戶請求的地圖顯示范圍轉(zhuǎn)換為在瓦片地圖坐標系統(tǒng)下的用戶請求的瓦片地圖范圍。
[0063]優(yōu)選的,S1014進行動態(tài)投影轉(zhuǎn)換,將用戶請求的地圖顯示范圍轉(zhuǎn)換為在瓦片地圖坐標系統(tǒng)下的用戶請求的瓦片地圖范圍方法為:在所述用戶請求的地圖顯示范圍的每個邊上按預定間隔采樣,獲取采樣點,將所有采樣點轉(zhuǎn)換到瓦片地圖坐標系統(tǒng)上,獲取轉(zhuǎn)換后采樣點的外接矩形,該外接矩形作為用戶請求的瓦片地圖范圍,如圖3所示。
[0064]可選的,所述地圖顯示范圍和所述瓦片地圖范圍為矩形。
[0065]以下詳細說明圖1所示方法中S102的具體實施方法。
[0066]首先介紹幾個S102中確定最佳地圖顯示層級需要用到的參數(shù):
[0067]如圖4所示,瓦片數(shù)據(jù)的組織類似金字塔形狀,瓦片地圖在最小比例尺時,整個地球顯示為一張256像素乘以256像素的地圖。如圖5所示,當每增加I個縮放級別時,圖片數(shù)會增加4倍,所述圖片數(shù)的增加是按照一定規(guī)則的,即一張圖片會按照從上到下、從左到右的順序分裂為4張圖片。對于層級L,如果將所有瓦片的圖片拼接在一起,構成一整幅圖像,則圖像的像素數(shù)由下式(I)計算:
[0068]W = H= 256 X 2l(I)
[0069]式(I)中,W和H分別表示圖像列數(shù)和行數(shù)。將該虛擬的整幅圖像左上角第一個像素位置定義為(0,0),然后從左向右從上到下對圖像所有像元編碼,就構成了像素坐標。
[0070]地面分辨率(Ground Resolut1n)是以一個像素代表的地面尺寸。當層級為O時,世界地圖在一個瓦片地圖上顯示。由于一個瓦片的大小為256*256。因此,按經(jīng)緯度計算,層級O的像元經(jīng)度分辨率和緯度分辨率分別為360/256和180/256。設地球半徑為r,緯度0上的平行于緯圈的地面分辨率由式(2)計算:
[0071]
R= 2Trcos(0)/256( 2 )
[0072]如圖4所示,瓦片地圖采用金字塔結構存儲數(shù)據(jù),低層的瓦片在相鄰高層中被細分為4個大小相等的瓦片。因此,對于任意層級L,平行于緯圈的地面分辨率由式(3)計算:
[0073]
R= 2τι*cos(O)/(256 X 2-)( 3 )
[0074]地圖比例尺是指測量地物目標時,地圖上距離與實際距離的比例。地圖在屏幕上顯示時,需要利用顯示分辨率換算得到地理比例尺。顯示分辨率使用dpi表示,dpi為地圖顯示時每英寸的像素數(shù)。如果瓦片地圖按照1:1的像素比展示在屏幕上,則可依據(jù)式(4)計算此時的地圖比例尺S:
[0075]S = I/(RX dpi X 0.0254)(4)
[0076]在實際地圖顯示時,地圖比例尺已知。設&為最佳地圖顯示層級L對應的地面分辨率,R為實際地面分辨率,Rl+1為L+1對應的地面分辨率,則最佳地圖顯示層級L滿足下式
(5):
[0077]Rl+1 < R 彡 Rl(5)
[0078]最終,將SlOl中確定的瓦片地圖徂圍代入式(5),能確定出該瓦片地圖徂圍的最佳地圖顯示層級L,S102執(zhí)行完畢。
[0079]圖1中S103通過如下方法實現(xiàn):
[0080]設瓦片地圖上某一點的地圖坐標為(X,y),利用坐標轉(zhuǎn)換公式獲取該點的地理坐標(lon,lat)。在此基礎上,利用式(6)可求取該點在層級L時的像素坐標(Px,Py):
?P—, =X 21
[0081];,… (6)
P” = 0.5- ^-"■—'-: K 21 sirJ = SinfIat * 】/1_|
V--、v ^
[0082]隨后根據(jù)所述像素坐標(Px,Py),利用式(7)求取該點在給定層級L時的瓦片的行列位置(Tx,Ty):
關幌S(V)
[0084]式(7)中,Int為取整函數(shù)。
[0085]因此,根據(jù)用戶請求的瓦片地圖范圍左上角和右下角坐標(xl,yl)、(x2, y2),首先將其轉(zhuǎn)換為地理坐標(lonl, latl)、(lon2, lat2)。利用式(6)和式(7)得到左上角和右下角坐標對應的瓦片的行列位置,從而構成瓦片數(shù)據(jù)序列,由于用戶請求的瓦片地圖范圍為矩形,所以待繪制的瓦片數(shù)據(jù)序列也為一個矩陣序列,由此S103執(zhí)行完畢。
[0086]由于瓦片按照瓦片地圖坐標系統(tǒng)存儲,需要轉(zhuǎn)換為顯示坐標系統(tǒng)后才能正常顯示。因此S104中,對于瓦片數(shù)據(jù)序列中的每一個瓦片,獲取其在瓦片地圖坐標系統(tǒng)下的矩形范圍,按照圖3所示的思路反算該瓦片投影到客戶端顯示坐標系統(tǒng)下的矩形范圍。GIS在展示空間數(shù)據(jù)時,一般規(guī)定屏幕坐標與地圖坐標在水平和垂直方向均呈線性關系。因此,可根據(jù)屏幕距離和地圖距離的相似比獲取水平和垂直方向的線性系數(shù)。如圖6所示,GIS中地圖坐標的原點在左下角,X軸正方向向右,Y軸正方向向上;如圖7所示,屏幕坐標的原點在左上角,X軸正方向向右,Y軸正方向向下。根據(jù)線性關系,不難得出公式⑶和公式(9):
[0087]X = ax*X,+bx(8)
[0088]Y = ay*Y,+by(9)
[0089]其中,X、Y為地圖上某點的坐標,V、Y’為屏幕上對應點的像素坐標,ax、ay為轉(zhuǎn)換系數(shù);bx、by為常數(shù)。
[0090]優(yōu)選的,利用式⑶和式(9),將瓦片投影到客戶端顯示坐標系統(tǒng)下的矩形范圍轉(zhuǎn)換為客戶區(qū)坐標范圍,該范圍即為瓦片數(shù)據(jù)顯示的客戶坐標范圍。
[0091]S105中,首先依據(jù)各瓦片數(shù)據(jù)顯示的客戶坐標范圍,生成同樣大小的內(nèi)存位圖,用于存放投影后的瓦片地圖。由于瓦片本身按照瓦片地圖坐標系統(tǒng)存儲,在瓦片地圖繪制時,仍然需要進行動態(tài)投影轉(zhuǎn)換。本實施樣例采用點對點的瓦片地圖重采樣方法繪制瓦片地圖,所述點對點的瓦片地圖重采樣方法包括以下步驟:
[0092]S1051:依據(jù)所述內(nèi)存位圖寬度和高度,按照預定間隔生成一個客戶坐標數(shù)組,并確定所述客戶坐標數(shù)組中所有元素在客戶端顯示坐標系統(tǒng)下的顯示坐標數(shù)組,其中,所述預定間隔為2個像素;
[0093]S1052:利用客戶端顯示坐標系統(tǒng)與瓦片地圖坐標系統(tǒng)的轉(zhuǎn)換關系,一次性將所述客戶端顯示坐標數(shù)組中所有元素轉(zhuǎn)換為瓦片地圖坐標數(shù)組;
[0094]S1053:利用雙線性內(nèi)插方法插值生成與所述內(nèi)存位圖高度和寬度一致的瓦片地圖坐標數(shù)組,重采樣后的瓦片地圖坐標數(shù)組中的每一個元素對應于所述內(nèi)存位圖各像素在瓦片地圖上的像素坐標值;
[0095]S1054:利用瓦片地圖坐標系統(tǒng)求取所述瓦片的行列位置,將該位置上的像元直接賦給所述內(nèi)存位圖對應的像素;并將推算出瓦片行列位置在瓦片數(shù)據(jù)之外的像元設置為透明顏色。
[0096]本實施樣例提供的點對點的瓦片地圖動態(tài)投影方法,在獲取客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng)后,確定用戶請求的瓦片地圖范圍;根據(jù)所述瓦片地圖范圍和地圖顯示比例尺,確定最佳地圖顯示層級和在最佳地圖顯示層級時對應的瓦片的行列位置,從而構成瓦片數(shù)據(jù)序列;進一步確定所述瓦片數(shù)據(jù)序列中的每一個瓦片投影到客戶端顯示坐標系統(tǒng)下的矩形范圍,并將該矩形范圍轉(zhuǎn)換為瓦片數(shù)據(jù)顯示的客戶坐標范圍;依據(jù)各瓦片數(shù)據(jù)顯示的客戶坐標范圍,生成同樣大小的內(nèi)存位圖,并采用點對點的瓦片地圖重采樣方法繪制瓦片地圖。
[0097]上述實施樣例中,瓦片地圖經(jīng)過兩次相反的動態(tài)投影轉(zhuǎn)換過程,兩次轉(zhuǎn)換后,新的坐標范圍大于等于原地圖范圍;另外,由于坐標系統(tǒng)之間并非簡單的線性關系,瓦片在瓦片地圖坐標系統(tǒng)中為矩形,投影后不一定保持矩形。上面兩方面的因素導致了經(jīng)過點對點動態(tài)投影轉(zhuǎn)換后,有部分像元推算出來的瓦片行列位置在瓦片數(shù)據(jù)之外,將這些像元設置為透明顏色,從而可實現(xiàn)相鄰瓦片地圖無縫拼接,并且本實施樣例采用點對點的瓦片地圖重采樣方法繪制瓦片地圖,能夠加快投影繪制過程。
[0098]瓦片地圖動態(tài)投影顯示效果圖如圖8和圖9所示,展示的是當?shù)貓D顯示坐標系統(tǒng)為高斯投影,疊加google地圖的效果。其中,圖8為高斯投影下加載google地圖中間過程的截圖,可見高斯投影后的瓦片在顯示時外邊緣并非為矩形范圍。圖9為google地圖加載完成后地圖顯示效果,從圖9可見,本發(fā)明提供的方法實現(xiàn)了動態(tài)投影轉(zhuǎn)換條件下的瓦片地圖無縫展示,并能與其他空間數(shù)據(jù)(圖8和圖9還疊加顯示了中國的公路和鐵路數(shù)據(jù))正確疊加。
[0099]實施樣例二
[0100]如圖10所示為本發(fā)明實施樣例二提供的點對點的瓦片地圖動態(tài)投影裝置的結構示意圖,該裝置包括:
[0101]第一確定模塊101,用于獲取客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng),確定用戶請求的瓦片地圖范圍并將其發(fā)送給第二確定模塊102。
[0102]第二確定模塊102,用于根據(jù)用戶請求的瓦片地圖范圍和地圖顯示比例尺,確定最佳地圖顯示層級。
[0103]構成模塊103,用于根據(jù)用戶請求的瓦片地圖范圍的左上角和右下角坐標,算出在第二確定模塊102確定出的最佳地圖顯示層級中對應的瓦片的行列位置,構成瓦片數(shù)據(jù)序列,并將瓦片數(shù)據(jù)序列發(fā)送給轉(zhuǎn)換模塊104。
[0104]轉(zhuǎn)換模塊104,用于確定所述瓦片數(shù)據(jù)序列中的每一個瓦片投影到客戶端顯示坐標系統(tǒng)下的矩形范圍,并將該矩形范圍轉(zhuǎn)換為瓦片數(shù)據(jù)顯示的客戶坐標范圍后提供給繪制模塊105。
[0105]繪制模塊105,用于依據(jù)各瓦片數(shù)據(jù)顯示的客戶坐標范圍,生成同樣大小的內(nèi)存位圖,并采用點對點的瓦片地圖重采樣方法繪制瓦片地圖。
[0106]在多數(shù)情況下,客戶端顯示坐標系統(tǒng)和瓦片地圖坐標系統(tǒng)不同,需要進行動態(tài)投影轉(zhuǎn)換。
[0107]優(yōu)選的,本發(fā)明實施樣例在獲取到客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng)后,需對客戶端坐標系統(tǒng)和瓦片地圖坐標系統(tǒng)進行是否一致的判斷,最終確定在瓦片地圖坐標系統(tǒng)下用戶請求的地圖范圍,即瓦片地圖范圍。對應的,圖11為圖10中第一確定模塊101的詳細結構示意圖,參照圖11,該模塊包括:
[0108]獲取單元1011,用于獲取客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng)并將其發(fā)送給判斷單元1012 ;
[0109]判斷單元1012,用于判斷客戶端顯示坐標系統(tǒng)與預先存儲的瓦片地圖坐標系統(tǒng)是否一致,若一致,則將用戶請求的地圖顯示范圍作為用戶請求的瓦片地圖范圍;否則,向轉(zhuǎn)換單元1013發(fā)送轉(zhuǎn)換通知指令,同時將用戶請求的地圖顯示范圍和瓦片地圖坐標系統(tǒng)發(fā)送給轉(zhuǎn)換單元1013 ;
[0110]轉(zhuǎn)換單元1013,用于根據(jù)判斷單元1012發(fā)來的轉(zhuǎn)換通知指令,將用戶請求的地圖顯示范圍轉(zhuǎn)換為在瓦片地圖坐標系統(tǒng)下的用戶請求的瓦片地圖范圍。
[0111]綜上所述,本發(fā)明實施樣例通過點對點的動態(tài)投影轉(zhuǎn)換繪制瓦片地圖,保證了瓦片上所有位置在不同坐標系統(tǒng)下的動態(tài)投影轉(zhuǎn)換關系,實現(xiàn)了瓦片地圖嵌入至GIS系統(tǒng)中動態(tài)投影轉(zhuǎn)換和無縫拼接,又保證了瓦片地圖的繪制速度,拓展了網(wǎng)絡地圖服務的應用范圍。
[0112]以上所述是本發(fā)明的優(yōu)選實施方式,應當指出,對于本【技術領域】的普通技術人員來說,在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。
【權利要求】
1.一種點對點的瓦片地圖動態(tài)投影方法,其特征在于,所述方法包括: 獲取客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng),根據(jù)客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng)確定用戶請求的瓦片地圖范圍; 根據(jù)所述用戶請求的瓦片地圖范圍和地圖顯示比例尺,確定最佳地圖顯示層級;根據(jù)所述用戶請求的瓦片地圖范圍的左上角和右下角坐標算出在所述最佳地圖顯示層級時對應的瓦片的行列位置,構成瓦片數(shù)據(jù)序列; 確定所述瓦片數(shù)據(jù)序列中的每一個瓦片投影到客戶端顯示坐標系統(tǒng)下的矩形范圍,并將該矩形范圍轉(zhuǎn)換為瓦片數(shù)據(jù)顯示的客戶坐標范圍; 依據(jù)各瓦片數(shù)據(jù)顯示的客戶坐標范圍,生成同樣大小的內(nèi)存位圖,并采用點對點的瓦片地圖重采樣方法繪制瓦片地圖。
2.根據(jù)權利要求1所述的點對點的瓦片地圖動態(tài)投影方法,其特征在于,所述用戶請求的地圖顯示范圍和所述用戶請求的瓦片地圖范圍為矩形。
3.根據(jù)權利要求1所述的點對點的瓦片地圖動態(tài)投影方法,其特征在于,所述獲取客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng),根據(jù)客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng)確定用戶請求的瓦片地圖范圍,包括: 獲取客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng); 判斷客戶端顯示坐標系統(tǒng)與瓦片地圖坐標系統(tǒng)是否一致,若是,則將用戶請求的地圖顯示范圍作為用戶請求的瓦片地圖范圍;否則, 進行動態(tài)投影轉(zhuǎn)換,將用戶請求的地圖顯示范圍轉(zhuǎn)換為在瓦片地圖坐標系統(tǒng)下的用戶請求的瓦片地圖范圍。
4.根據(jù)權利要求3所述的點對點的瓦片地圖動態(tài)投影方法,其特征在于,所述進行動態(tài)投影轉(zhuǎn)換,將用戶請求的地圖顯示范圍轉(zhuǎn)換為在瓦片地圖坐標系統(tǒng)下的用戶請求的瓦片地圖范圍方法包括: 在所述用戶請求的地圖顯示范圍的每個邊上按照預定間隔采樣,獲取采樣點,將所有采樣點轉(zhuǎn)換到瓦片地圖坐標系統(tǒng)上,獲取轉(zhuǎn)換后采樣點的外接矩形,并將該外接矩形作為用戶請求的瓦片地圖范圍。
5.根據(jù)權利要求1所述的點對點的瓦片地圖動態(tài)投影方法,其特征在于,所述點對點的瓦片地圖重采樣方法包括: 依據(jù)所述內(nèi)存位圖寬度和高度,按照預定間隔生成一個客戶坐標數(shù)組,并確定所述客戶坐標數(shù)組中所有元素在客戶端顯示坐標系統(tǒng)下的顯示坐標數(shù)組; 利用客戶端顯示坐標系統(tǒng)與瓦片地圖坐標系統(tǒng)的轉(zhuǎn)換關系,一次性將所述客戶端顯示坐標數(shù)組中所有元素轉(zhuǎn)換為瓦片地圖坐標數(shù)組; 利用雙線性內(nèi)插方法插值生成與所述內(nèi)存位圖高度和寬度一致的瓦片地圖坐標數(shù)組,重采樣后的瓦片地圖坐標數(shù)組中的每一個元素對應于所述內(nèi)存位圖各像素在瓦片地圖上的像素坐標值; 利用瓦片地圖坐標系統(tǒng)求取所述瓦片的行列位置,將該位置上的像元直接賦給所述內(nèi)存位圖對應的像素;將推算出瓦片行列位置在瓦片數(shù)據(jù)之外的像元設置為透明顏色。
6.根據(jù)權利要求4或5所述的點對點的瓦片地圖動態(tài)投影方法,其特征在于,所述預定間隔為2個像素。
7.一種點對點的瓦片地圖動態(tài)投影裝置,其特征在于,包括: 第一確定模塊,用于獲取客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng),確定用戶請求的瓦片地圖范圍,并將其發(fā)送給第二確定模塊; 第二確定模塊,用于根據(jù)所述用戶請求的瓦片地圖范圍和地圖顯示比例尺,確定最佳地圖顯示層級; 構成模塊,用于根據(jù)所述用戶請求的瓦片地圖范圍的左上角和右下角坐標,算出在所述第二確定模塊確定出的最佳地圖顯示層級中對應的瓦片的行列位置,構成瓦片數(shù)據(jù)序列,并將瓦片數(shù)據(jù)序列發(fā)送給轉(zhuǎn)換模塊; 轉(zhuǎn)換模塊,用于確定所述瓦片數(shù)據(jù)序列中的每一個瓦片投影到客戶端顯示坐標系統(tǒng)下的矩形范圍,并將該矩形范圍轉(zhuǎn)換為瓦片數(shù)據(jù)顯示的客戶坐標范圍后提供給繪制模塊; 繪制模塊,用于依據(jù)各瓦片數(shù)據(jù)顯示的客戶坐標范圍,生成同樣大小的內(nèi)存位圖,并采用點對點的瓦片地圖重采樣方法繪制瓦片地圖。
8.根據(jù)權利要求7所述的點對點的瓦片地圖動態(tài)投影裝置,其特征在于,所述第一確定模塊包括: 獲取單元,用于獲取客戶端用戶請求的地圖顯示范圍和客戶端顯示坐標系統(tǒng)并將其發(fā)送給判斷單元; 判斷單元,用于判斷客戶端顯示坐標系統(tǒng)與預先存儲的瓦片地圖坐標系統(tǒng)是否一致,若一致,則將用戶請求的地圖顯示范圍作為用戶請求的瓦片地圖范圍;否則,向轉(zhuǎn)換單元發(fā)送轉(zhuǎn)換通知指令,同時將用戶請求的地圖顯示范圍和瓦片地圖坐標系統(tǒng)發(fā)送給轉(zhuǎn)換單元; 轉(zhuǎn)換單元,用于根據(jù)所述判斷單元發(fā)來的轉(zhuǎn)換通知指令,將用戶請求的地圖顯示范圍轉(zhuǎn)換為在瓦片地圖坐標系統(tǒng)下的用戶請求的瓦片地圖范圍。
【文檔編號】G06T3/00GK104134187SQ201410369585
【公開日】2014年11月5日 申請日期:2014年7月30日 優(yōu)先權日:2014年7月30日
【發(fā)明者】陳軍, 唐古拉, 文軍 申請人:陳軍