專利名稱:服務器與客戶端之間柵格圖片適配方法
技術領域:
本發明涉Ai也圖服務領域,服務器向客戶端提供柵格圖片,尤指一種服務器與客戶端之間才冊格圖片適配方法。
背景技術:
^i也圖月良務領域,月l務器用來為客戶端提供各種地圖信息,例如提^^立置信息、地片以及柵才各圖片等等信息。所必良務器包括各種類型的服務器,有些用來存儲地圖數據,有些用^4^位置數據,有些用^ft柵才各圖片,等等。所i^戶端包括各種裝載在汽車等移動載體上的車載導航儀和手機等等。
用^#放柵格圖片的服務器,即向客戶端提供柵格地圖數據的服務器,通常來
講,都M用靜態適配方法來向客戶端發送柵格圖片的。也就是說,如^戶端請求服務器發送柵格圖片,月良務H4刻t5'J客戶端的發送請求后,都是將固定類型、固定大小、固M量的圖片發送給客戶端。對于任意一個客戶端,服務器所發送的圖片都是一樣的,即,月良務器為所有客戶端發送的柵格地圖數據的數據類型、大小和質量都是相同的。
由上述可知,采用靜態適配方法傳送4冊沖各圖片存在下列缺陷首先,由于不同的終端可能擁有不同的分辨率。采用靜態適配方法傳送對冊格圖片返回的地片是固定大小的,不同分辨率的終端4t^整個屏幕需要的圖片數量是不同的。如果終端M—屏幕需要的圖片較多的話,每次地圖的移動都可能需要
請求新的圖片,由于客戶端^i4^用的是http連接,建立連接獲得數據的時間比較
長,頻繁的、大量的數據請求必然占用過多的客戶端資源。
其次,由于不同的客戶端支持的可顯示最大色彩彰義不同的,同樣的真彩色圖片在色彩還原能力較差的終端上由于自身硬件的差異其顯示效果是不同的,與此同時,由于高質量的圖片凄t據量更大,如果終端不適合下載高質量的圖片^^吏得用戶花費了更多的流量費用。
發明內容
本發明要解決的問^^提供一種占用資源少的服務器與客戶端之間柵格圖片適 配方法。
為了解決上述問題,本發明服務器與客戶端之間柵才各圖片適配方法的技術方案
包括
客戶端確定當前屏幕所需柵格圖片的哪些圖塊,所述柵格圖片是由若干圖塊構
成的;
客戶端對所述圖塊進行編碼;
客戶端根據所述編碼生成圖塊請求字符串;
客戶端將所述圖塊請求字符串和要請求的圖塊信息合成請求信息發送給服務
器;
月l務器接^^所述請求信息后對其進行解碼以獲得所述圖塊的所述編碼和所述 圖塊信息;
月良務器根據所述編碼來獲得所述圖塊;
服務器根據所述圖塊信息對所述圖塊進行類型和質量轉換以獲得客戶端所需的 圖片;
服務器將所述圖片發給所^戶端。
其中,所述步架樣戶端確定當前屏幕所需柵格圖片的哪些圖塊進一步包括下述 步驟
確定當前屏幕顯示的地圖的縮放級別;
確定當前顯示的M;圖中心點的經綿度坐標;
根據縮放級別和經緯度坐標計算出圖塊的像素坐標。
與現有4支斜目比,本發明服務器與客戶端之間柵才各圖片適配方法的有益效果為
由于本發明月良務器與客戶端之間柵格圖片適配方法,客戶端將自己所需顯示的 圖塊以及類型、質量等信息合成請求信息發送給服務器,服務器對所述請求信息進 行解碼以獲得客戶端所需的圖片的^(言息,^服務器將客戶端所需的圖片發送給客
戶端。也就是說,服務器能夠根據不同客戶端的需求,對不同的客戶端發送滿足不 同客戶端需求的圖片,不會為客戶端發送其不需要的圖片,從而節約了客戶端的資 源,減少了客戶端的下載流量,降低了用戶的流量費用。
圖1是本發明服務器與客戶端之間柵格圖片適配方法的i^呈圖; 圖2是客戶端確定當前屏幕所需哪些圖塊的流程圖; 圖3是四3L^t編石馬為1320的圖片分割過程示意圖。
具體實施例方式
如圖l所示,本發明服務器與客戶端之間柵格圖片適配方法包括步驟 客戶端確定當前屏幕所需柵格圖片的哪些圖塊,所述柵格圖片是由若干圖塊構 成的;
客戶端對所述圖塊進行編碼;
客戶端根據所述編碼生成圖塊請求字符串;
客戶端將所述圖塊請求字符串和要請求的圖塊信息合成請求信息發送給服務
器;
月良務器接4t^所述請求信息后對其進行解碼以獲得所述圖塊的所述編碼和所述 圖塊信息;
服務器根據所述編碼來獲得所述圖塊;
月良務器根據所述圖塊信息對所述圖塊進行類型和質量轉換以獲得客戶端所需的 圖片;
月良務器將所述圖片發給所ii^戶端。
由上述可知,首n戶端確定其當前屏幕都需要哪些圖塊,并乂于這些圖塊進4亍 編碼,再根據這些編碼生成圖塊請求字符串,所述圖塊請求字符串力良務器可以識 別的,客戶端將所述圖塊請求字符串和要請求的圖塊信息合成請求信息發送給服務 器。也#^_說, 戶端發送給服務器的請求信息中包括客戶端當前屏幕所需顯示 的圖塊信息(類型、大小、哪個圖塊等等),即月良務器上某個圖片的哪些圖塊,而不 是該圖片的所有圖塊。服務器接^ltJ'j所述請求信息后對其進行解碼以獲得所述圖塊 的所述編碼和所述圖塊信息,再根據所述編碼來獲得所述圖塊,然后根據所述圖塊 信息對根據所述圖塊進行類型和質量轉換以獲得客戶端所需的圖片并將所述圖片發 給所錄戶端。
如圖2所示,步驟客戶端確定當前屏幕所需哪些圖塊進一步包括下述步驟 確定當前屏幕顯示的地圖的縮放級別;一4棘講,首先默認一個縮放級別,假
5設為10。每進行一;i^文大操作,就將縮放級別加l;每進行一次縮小操作就將縮放
級別減l。這樣,根據進行了幾次縮放操作可以確定當前的縮放級別。
確定當前顯示的地圖中心點的經絳度坐標;通常地,將地圖中心默認為一個經 煒度值。每次地圖平移沖剁乍都會改變經綿度坐標。根據變化的量和默認的經綿度值 即可獲得當前經綿度值。
根據縮放級別和經煒度坐標計算出圖塊的像素坐標。可利用Mercator(墨卡托) 投影公式來計算。所述Mercator投影公i(^一種"等角正切圓柱投影",荷蘭地圖 學家墨卡托(Gerhardus Mercator 1512 - 1594)在1569年擬定,假設i4 扣波圍在一
中空的圓柱里,其標準綿線與圓4封目切接觸,然后刷艮想;4j求中心有一盞燈,4gj求
面上的圖形投影到圓柱體上,再把圓柱體展開,這就是一幅選定標準綿線上的"墨 卡4W殳影"^^'J出的地圖。墨卡4W殳影沒有角度變形,由每一點向各方向的長度比 相等,它的經煒線都是平行直線,勤目交成直角,經線間隔相等,綿線間隔從標準 煒線向兩極逐漸增大。墨卡4W殳影的地圖上長度和面積變形明顯,<^#準綿線無變 形,從標準綿線向兩極變形i^斬增大,但因為它具有M方向均等擴大的特性,保 持了方向和相互位置關系的正確。在地圖上保持方向和角度的正確是墨卡4d更影的 優點。
所述圖塊請求字符串可由純數字組成。數字的個數和圖片所在的縮放級別相
同,每個數字的取值范圍可為(K3,數字從左到右每位依次^4圖片在對應的縮放 級別母圖片上的位置。
對圖塊的編碼方法可采用四叉樹編碼,如圖3所示,如果編碼是2位的則表示 對柵格圖片進行2次分割,如果編碼是4位的則表示對才冊才各圖片進行4次分割,也 就是說,沖艮據編碼的位數來確定分割的次數,有/U立f汰示進行幾次分割。假如服 務器解析后得到的四叉樹編碼請求信息是"1320",由于請求是四個數字組成的,代 表要對母圖片(柵格圖片)進行四次切割才能得到需要的圖塊。首先服務器把原始 母圖片分為等大的四個圖片,左上的圖片用"圖片0"表示,右上的圖片用"圖片1" 表示,左下的圖片用"圖片2"表示,右下的圖片用"圖片3"表示(后面所有的圖 片分割時都采用此分割和標識方式)。由于請求信息里面第一數字是'T,,代表要請 求的圖片在原始圖片的圖片l上,第二位數字是"3",說明請求^/馬在圖片l的第 三個子圖片上,需要對圖片l按照上面的分割方法繼續分割。圖片1分割后同才玲 得到等大的四個圖片(分別標識為"圖片10","圖片11","圖片12","圖片13")。
6由于請求信息的第三個數字是"2",前兩個數字"13", ^^4請求的圖片在圖片13 上,需要對圖片13繼續切割(切割后4尋到"圖片130","圖片131","圖片132",
"圖片133,,)。由于請求信息第四個凄丈字是"0",前三個數字是"132",說明還要 對圖片132繼續ii^亍切割(切割后得到"圖片1320","圖片1321","圖片1322",
"圖片1323")。根據請求信息為"1320" 1科口到此為止已經切割完畢,得到了所需 要的圖片(圖片1320)。
下面,假設一個客戶端的屏幕^l碎率為240x320,請求的圖塊大小為64 x 64, 顯示的地圖中心為北京市市中心,縮》文級別為IO的地圖,以此為例來詳細描述本發 明月良務器與客戶端之間4冊才各圖片適配方法的^支術方案
首先,客戶端確定當前屏幕所需柵格圖片的哪些圖塊。要確定整個屏幕需要那 些圖塊,首先要計算出屏幕中心的像素坐標。像素坐標是根據屏幕中心的經煒度坐 標計^^尋來的。由于當前屏幕的中心為北京市中心,所以經度坐標為39.9091,綿度 坐標為116.39767。根據經煒度坐標,用Mercator地圖才殳影公式可以計算出投影在 地圖上的像素坐標,計算得出的像素坐標為(215850, 99329)。因為屏幕的寬度為 240像素,高度為32(W象素,中心點坐標為(215850, 99329),所以屏幕左上角的 像素坐標為(215850-240/2, 99329-320/2),即(215730, 99169)。同理可以計## 出屏幕右下角的像素坐標為(215970, 99489)。由于圖塊的大小已知(64 x 64 ), 那么像素坐標除以圖塊的寬度可以得到屏幕左上角和右下角的點在服務器上的圖片 上的圖塊坐標(棚良務器上的圖片以請求圖塊的寬度,即以64像素為一個^(立分 割)。左上角的點的圖塊坐標為(215730/64, 99169/64),即(3370, 1549)。右下 角的點的圖塊坐標為(215970/64, 99489/64),即(3374, 1554)。因為左上角的圖 塊對黃坐標為3370,右下的為3374,所以屏幕橫向需要五塊圖塊才fetA全屏(橫坐 標分別為3370, 3371, 3372, 3373, 3374)。同理,縱向需要六塊圖塊才f&t^全 屏(縱坐標分別為1549, 1550, 1551, 1552, 1553, 1554)。所以整個屏幕一共需 要5 x 6,即30塊圖塊(4巴上面的每個橫坐標依次與縱坐標組合就可以得到這30塊 圖塊每塊的坐標值,在此不一一列舉)。到此,屏幕需要哪些圖塊就計算完畢了。
下面,根據得到的圖塊坐標對每個圖塊進行編碼。知ii^幕都需要那些圖塊后 就可以對它們進行編碼了 。編碼的目的是告訴服務器此圖塊在服務器上如何分割才 能得到。此編碼為服務器四叉樹解碼的逆運算,編碼需要的^lt為圖塊的圖塊坐標 和當前縮放,得到的結果為一個數字組成的字符串。現以步驟一中得到的30塊圖塊的一塊(3370, 1549)為例,編碼后4尋到的結果為2100103212。同理可以得到其^也 29個圖塊的編碼結果。
然后,將得到的編碼結果和其他的附力o信息組合成最終的請求。這里指的附加 信息包括客戶端終端的型號,請求圖塊的格式和質量以及圖塊的大小等。得到的結 果為http:〃服務器的域名或者IP地址/ac=Nokia 6600&ua=pngTest-16&sl=2&g=2100103212; 2100103213; 2100103214;......;其中
ac=Nokia 660(H樣終端的型號為Nokia 6600。 ua=pngTest-16 ^4請求的圖塊的格 式為PNG,質量為16位色圖片。sl=2 ^C表圖塊的大小為原始圖片的2的-2次方大 小,這里原圖的大小為256 x 256,所以sl=2 ^C4請求的圖塊為256 x 0.25即64 x 64大小。g=2100103212;2100103213; 2100103214; ......^4本次請求的圖塊是哪些。
月艮務^^ti'J客戶端發送過來的請求后首先要解析此請求。解析后服務器可以 得到客戶端需要圖塊的大小,質量,圖塊位置等信息。因為此例的請求中包含30 個圖塊,服務器皿次對原圖進行分割,得到此30個圖塊(分割過程與上面以1320 為例的四叉樹分割過禾封目同)。分割完畢后服務器還需要根據客戶端請求的圖塊格 式以M量要i^于分割所得的圖片進行后期處理,得到滿足要求的圖塊(此例中要 把圖片轉換成PNG格式,16位色)。
當月良務器才e^戶端請求的所有圖塊都分割并處理完g就可以4<據返回給客 戶端了 。在此服務器根據客戶端請求信息里圖片的排列;M依次把30個圖塊用二進 制*據流的形式傳輸給客戶端。客戶端接受到數據后就可以還原成圖片顯示在屏幕 上了。
綜上所述,本服務器與客戶端之間柵格圖片適配方法的優點是 由于客戶端將自己所需顯示的圖塊以及類型、質量等信息合成請求信息發送給 月良務器,月l務器對所述請求信息進行解碼以獲得客戶端所需的圖片的信息,g服 務器將客戶端所需的圖片發it^客戶端。也就是說,月l務器能夠根據不同客戶端的 需求,對不同的客戶端發送滿足不同客戶端需求的圖片,不會為客戶端發送其不需 要的圖片,從而節約了客戶端的資源,減少了客戶端的下載流量,降低了用戶的流
量費用。
8
權利要求
1、一種服務器與客戶端之間柵格圖片適配方法,其特征在于,包括步驟客戶端確定當前屏幕所需柵格圖片的哪些圖塊,所述柵格圖片是由若干圖塊構成的;客戶端對所述圖塊進行編碼;客戶端根據所述編碼生成圖塊請求字符串;客戶端將所述圖塊請求字符串和要請求的圖塊信息合成請求信息發送給服務器;服務器接收到所述請求信息后對其進行解碼以獲得所述圖塊的所述編碼和所述圖塊信息;服務器根據所述編碼來獲得所述圖塊;服務器根據所述圖塊信息對所述圖塊進行類型和質量轉換以獲得客戶端所需的圖片;服務器將所述圖片發給所述客戶端。
2、 如權利要求1所述的月良務器與客戶端之間柵格圖片適配方法,其特4i^于, 步艱樣戶端確定當前屏幕所需柵格圖片的哪些圖塊進一步包括下述步驟確定當前屏幕顯示的地圖的縮放級別; 確定當前顯示的地圖中心點的經煒度坐標; 根據縮放級別和經綿度坐標計算出圖塊的像素坐標。
全文摘要
本發明公開一種服務器與客戶端之間柵格圖片適配方法,包括客戶端確定當前屏幕所需柵格圖片的哪些圖塊,所述柵格圖片是由若干圖塊構成的;客戶端對所述圖塊進行編碼;客戶端根據所述編碼生成圖塊請求字符串;客戶端將所述圖塊請求字符串和要請求的圖塊信息合成請求信息發送給服務器;服務器接收到所述請求信息后對其進行解碼以獲得所述圖塊的所述編碼和所述圖塊信息;服務器根據所述編碼來獲得所述圖塊;服務器根據所述圖塊信息對所述圖塊進行類型和質量轉換以獲得客戶端所需的圖片;服務器將所述圖片發給所述客戶端。因此,采用本發明服務器與客戶端之間柵格圖片適配方法所占用的資源少。
文檔編號H04L12/18GK101465747SQ20071030151
公開日2009年6月24日 申請日期2007年12月21日 優先權日2007年12月21日
發明者沖 張 申請人:高德軟件有限公司