一種地圖服務(wù)資源獲取方法及客戶端的制作方法
【專利摘要】本發(fā)明實施例公開了一種地圖服務(wù)資源獲取方法,用于減少客戶端與服務(wù)器的交互次數(shù),節(jié)約客戶端從服務(wù)器處獲取地圖瓦片的時間,且減輕服務(wù)器的負擔(dān)。本發(fā)明實施例方法包括:客戶端確定瓦片請求數(shù)、客戶端確定請求信息,并將請求信息發(fā)送給服務(wù)器,該請求信息用于表示客戶端向服務(wù)器請求瓦片請求數(shù)個地圖瓦片。本發(fā)明實施例還提供了相關(guān)的客戶端。
【專利說明】一種地圖服務(wù)資源獲取方法及客戶端
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種地圖服務(wù)資源獲取方法及客戶端。
【背景技術(shù)】
[0002]隨著科學(xué)技術(shù)的發(fā)展,人類對地球的探索手段也在逐漸完善,如地理信息系統(tǒng)(GIS,Geographic Informat1n System)。GIS是一種特定的空間信息系統(tǒng),用于在計算機硬、軟件系統(tǒng)支持下,對整個或部分地球表層(包括大氣層)空間中的有關(guān)地理分布數(shù)據(jù)進行采集、儲存、管理、運算、分析、顯示和描述。
[0003]在GIS使用時,客戶端根據(jù)需要的地圖瓦片信息,構(gòu)造成對應(yīng)的統(tǒng)一資源定位符(URL, Uniform Resource Locator)請求并發(fā)送給服務(wù)器,服務(wù)器處理該請求后就把相關(guān)數(shù)據(jù)返回給客戶端。其中,每張地圖瓦片對應(yīng)一個URL。由于客戶端單張向服務(wù)器請求地圖瓦片會使得客戶端與服務(wù)器的交互次數(shù)較多,故較為耗時,因此,現(xiàn)有技術(shù)的改進方法中將多個請求放到不同的線程中,進行多線程下載。
[0004]但是,即使現(xiàn)有的GIS對請求進行多線程處理,在每個線程中單個請求仍然對應(yīng)著單張地圖瓦片。因此,現(xiàn)有技術(shù)的改進方法中客戶端與服務(wù)器的交互次數(shù)實質(zhì)上并沒有減少,對時間的節(jié)約非常有限,且不能減少服務(wù)器的負擔(dān)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供了一種地圖服務(wù)資源獲取方法及客戶端,能夠就減少客戶端與服務(wù)器的交互次數(shù),減輕服務(wù)器的負擔(dān)。
[0006]本發(fā)明實施例提供的地圖服務(wù)資源獲取方法包括:
[0007]客戶端確定瓦片請求數(shù),所述瓦片請求數(shù)用于表示所述客戶端待要向服務(wù)器請求的地圖瓦片的數(shù)量;
[0008]所述客戶端確定請求信息,并將所述請求信息發(fā)送給所述服務(wù)器,所述請求信息用于表示所述客戶端向所述服務(wù)器請求所述瓦片請求數(shù)個地圖瓦片。
[0009]本發(fā)明實施例提供的客戶端包括:
[0010]瓦片請求數(shù)確定模塊,用于確定瓦片請求數(shù),所述瓦片請求數(shù)用于表示所述客戶端待要向服務(wù)器請求的地圖瓦片的數(shù)量;
[0011]請求消息確定模塊,用于確定請求信息,并將所述請求信息發(fā)送給所述服務(wù)器,所述請求信息用于表示所述客戶端向所述服務(wù)器請求所述瓦片請求數(shù)個地圖瓦片。
[0012]本發(fā)明實施例提供的地圖服務(wù)資源獲取方法中,客戶端確定瓦片請求數(shù)、客戶端確定請求信息,并將請求信息發(fā)送給服務(wù)器,該請求信息用于表示客戶端向服務(wù)器請求瓦片請求數(shù)個地圖瓦片。通過這樣的方法,使得客戶端可以通過一次請求就向服務(wù)器請求多張地圖瓦片,這樣就減少了客戶端與服務(wù)器的交互次數(shù),節(jié)約了客戶端從服務(wù)器處獲取地圖瓦片的時間,且減輕了服務(wù)器的負擔(dān)。
【專利附圖】
【附圖說明】
[0013]圖1為本發(fā)明實施例中地圖服務(wù)資源獲取方法一個實施例流程圖;
[0014]圖2為本發(fā)明實施例中地圖服務(wù)資源獲取方法另一個實施例流程圖;
[0015]圖3為本發(fā)明實施例中客戶端一個實施例結(jié)構(gòu)圖。
【具體實施方式】
[0016]本發(fā)明實施例提供了一種地圖服務(wù)資源獲取方法,用于減少客戶端與服務(wù)器的交互次數(shù),減輕服務(wù)器的負擔(dān)。本發(fā)明實施例還提供了相關(guān)的客戶端,以下將分別進行描述。
[0017]本發(fā)明實施例提供的地圖服務(wù)資源獲取方法的基本流程請參見圖1,主要包括:
[0018]101、客戶端確定瓦片請求數(shù);
[0019]客戶端確定瓦片請求數(shù),該瓦片請求數(shù)用于表示客戶端待要向服務(wù)器請求的地圖瓦片的數(shù)量。瓦片請求數(shù)的取值本實施例中不做限定,優(yōu)選地,瓦片請求數(shù)的數(shù)值大于1.
[0020]其中,客戶端確定瓦片請求數(shù)的方法有很多,包括客戶端計算瓦片請求數(shù)、客戶端設(shè)定默認瓦片請求數(shù)、客戶端接收人為設(shè)定的瓦片請求數(shù)等,本實施例中不做限定。
[0021]優(yōu)選地,客戶端可以確定服務(wù)器能提供的地圖瓦片數(shù)目的最大值,并將該最大值確定為瓦片請求數(shù)。客戶端確定服務(wù)器能提供的地圖瓦片數(shù)目的最大值的方法將在后面的實施例中詳述,本實施例中不做限定。
[0022]102、客戶端確定請求信息,并將該請求信息發(fā)送給服務(wù)器。
[0023]客戶端確定請求信息,并將該請求信息發(fā)送給服務(wù)器。該請求信息用于表示:客戶端向服務(wù)器請求瓦片請求數(shù)個地圖瓦片。
[0024]其中,客戶端可以通過如下步驟確定請求信息,并將該請求信息發(fā)送給服務(wù)器:
[0025]步驟一:客戶端構(gòu)造瓦片請求數(shù)個地圖瓦片中,每個地圖瓦片所對應(yīng)的URL。具體的,客戶端可以根據(jù)每個地圖瓦片的行號、列號、級別以及服務(wù)的ip、端口等信息,構(gòu)造對應(yīng)的 URLo
[0026]步驟二:客戶端將每個地圖瓦片所對應(yīng)的URL與一個本地單句柄對象相關(guān)聯(lián)。具體的,客戶端可以通過⑶RL將每個URL與一個本地單句柄對象相關(guān)聯(lián)。其中,curl是利用URL語法在命令行方式下工作的開源文件傳輸工具??蛻舳艘部梢酝ㄟ^其他工具將每個URL與一個本地單句柄對象相關(guān)聯(lián),此處不做限定??梢岳斫獾模灿型咂埱髷?shù)個本地單句柄對象被關(guān)聯(lián)。
[0027]步驟三:客戶端將所有與每個地圖瓦片對應(yīng)的URL相關(guān)聯(lián)的本地單句柄對象與一個本地多句柄對象相關(guān)聯(lián)。具體的,客戶端通過CURL或其他工具將步驟三中所述的瓦片請求數(shù)個本地單句柄對象關(guān)聯(lián)到一個本地多句柄對象中。
[0028]步驟四:客戶端確定請求信息,并將該請求信息發(fā)送給所述服務(wù)器,該請求信息包括所述本地多句柄對象。具體的,客戶端可以通過CURL或其他工具將包括該本地多句柄對象的請求信息發(fā)送給服務(wù)器。服務(wù)器接收到請求信息后,可以從該請求信息中獲取該本地多句柄對象,進而獲取多個本地單句柄對象,最后獲取每個地圖瓦片對應(yīng)的URL。服務(wù)器根據(jù)每個地圖瓦片對應(yīng)的URL,確定地圖瓦片,并將確定的地圖瓦片反饋給客戶端。
[0029]客戶端還以通過其他步驟確定請求信息,并將該請求信息發(fā)送給服務(wù)器,本實施例中不做限定。
[0030]本實施例中,客戶端確定瓦片請求數(shù)、客戶端確定請求信息,并將請求信息發(fā)送給服務(wù)器,該請求信息用于表示客戶端向服務(wù)器請求瓦片請求數(shù)個地圖瓦片。通過這樣的方法,使得客戶端可以通過一次請求就向服務(wù)器請求多張地圖瓦片,這樣就減少了客戶端與服務(wù)器的交互次數(shù),節(jié)約了客戶端從服務(wù)器處獲取地圖瓦片的時間,且減輕了服務(wù)器的負擔(dān)。
[0031]上面的實施例給出了本發(fā)明實施例提供的地圖服務(wù)資源獲取方法的基本流程,其中,客戶端通過一次請求向服務(wù)器請求多張地圖瓦片,來減少與服務(wù)器的交互次數(shù)。但是,客戶端與服務(wù)器之間的網(wǎng)絡(luò)帶寬是不斷變化的,因此服務(wù)器所能提供的地圖瓦片數(shù)目也是不斷變化的。若客戶端向服務(wù)器請求的地圖瓦片數(shù)目過大,則一方面客戶端會因過多的構(gòu)造URL而浪費內(nèi)存資源,另一方面會增加服務(wù)器的負載,甚至造成服務(wù)異常;若客戶端向服務(wù)器請求的地圖瓦片數(shù)目過小,則會導(dǎo)致地圖服務(wù)資源獲取方法的整體效率不高。因此,為了與不斷變化的網(wǎng)絡(luò)相適應(yīng),客戶端需要接收服務(wù)器反饋的地圖瓦片,并確定服務(wù)器反饋的地圖瓦片的瓦片反饋數(shù),然后根據(jù)瓦片反饋數(shù)修正瓦片請求數(shù)。其中,瓦片反饋數(shù)用于表示服務(wù)器反饋的地圖瓦片的數(shù)目。具體的修正方法請參見圖2,本發(fā)明實施例提供的一種更為細化的地圖服務(wù)資源獲取方法的流程包括:
[0032]201、客戶端確定服務(wù)器能提供的地圖瓦片數(shù)目的最大值;
[0033]具體的,客戶端可以通過如下步驟確定服務(wù)器能提供的地圖瓦片數(shù)目的最大值:
[0034]步驟一:客戶端從服務(wù)器處獲取單張地圖瓦片的寬度與高度。一般地,同一份地圖數(shù)據(jù)中,地圖瓦片的大小都是相同的,比如都是256*256個象素。
[0035]步驟二:客戶端根據(jù)所述單張地圖瓦片的寬度與高度,計算單張地圖瓦片的大小。其中,計算單張地圖瓦片的大小的方法有很多,本實施例中不做限定。例如若按照bmp格式計算的話,由于一個像素需要4個字節(jié)表示,故:單張地圖瓦片的大小=4X單張地圖瓦片的寬度X單張地圖瓦片的高度。
[0036]步驟三:客戶端確定當(dāng)前的網(wǎng)絡(luò)帶寬。其中,步驟三也可以放在步驟二或步驟一之前,此處不做限定。
[0037]步驟四:客戶端將當(dāng)前的網(wǎng)絡(luò)帶寬與單張地圖瓦片的大小的比值,確定為服務(wù)器能提供的地圖瓦片數(shù)目的最大值??梢岳斫獾模?dāng)前的網(wǎng)絡(luò)帶寬與單張地圖瓦片的大小的比值,即為理想情況下,客戶端百分百占用網(wǎng)絡(luò)帶寬、且服務(wù)又能提供盡可能多的瓦片情況下,客戶端所接收的地圖瓦片數(shù)。
[0038]客戶端也可以通過其他步驟確定服務(wù)器能提供的地圖瓦片數(shù)目的最大值,本實施例中不做限定。
[0039]202、客戶端確定瓦片請求數(shù);
[0040]203、客戶端確定請求信息,并將該請求信息發(fā)送給服務(wù)器。
[0041]步驟202、203與步驟101、102基本相同,此處不做贅述。
[0042]優(yōu)選的,步驟202中,瓦片請求數(shù)為不大于服務(wù)器能提供的地圖瓦片數(shù)目的最大值的數(shù)值。
[0043]204、客戶端接收服務(wù)器反饋的地圖瓦片,并確定服務(wù)器反饋的地圖瓦片的瓦片反饋數(shù);
[0044]可以理解的,瓦片反饋數(shù)不大于瓦片請求數(shù),若當(dāng)前網(wǎng)絡(luò)狀況不理想,瓦片反饋數(shù)會小于瓦片請求數(shù)。瓦片反饋數(shù)也不大于服務(wù)器能提供的地圖瓦片數(shù)目的最大值。
[0045]其中,若瓦片反饋數(shù)小于步驟201中確定的最大值,則執(zhí)行步驟205 ;
[0046]若瓦片反饋數(shù)不小于步驟201中確定的最大值,則執(zhí)行步驟206。
[0047]205、客戶端將增大的瓦片反饋數(shù)作為修正后的瓦片請求數(shù);
[0048]若瓦片反饋數(shù)小于步驟201中確定的最大值,則客戶端將增大的瓦片反饋數(shù)作為修正后的瓦片請求數(shù)。其中,客戶端將增大的瓦片反饋數(shù)作為修正后的瓦片請求數(shù)的方法有很多,下面以一個例子來做簡單舉例:
[0049]客戶端可以通過默認設(shè)定、接收人為設(shè)定等方式,設(shè)定一個預(yù)設(shè)值,該預(yù)設(shè)值的數(shù)值此處不做限定。在確定了瓦片反饋數(shù)后,客戶端計算瓦片請求數(shù)與瓦片反饋數(shù)的差值。若瓦片請求數(shù)與瓦片反饋數(shù)的差值不大于該預(yù)設(shè)值,則客戶端將瓦片請求數(shù)修正為:瓦片反饋數(shù)加I ;若瓦片請求數(shù)與瓦片反饋數(shù)的差值大于該預(yù)設(shè)值,則客戶端將瓦片請求數(shù)修正為:瓦片反饋數(shù)加該預(yù)設(shè)值。通過這樣的方式,可以使得當(dāng)網(wǎng)絡(luò)狀況不理想,服務(wù)器不能提供足夠的地圖瓦片資源,反饋的地圖瓦片的數(shù)目與客戶端向服務(wù)器請求的地圖瓦片的數(shù)目相差較多時,將客戶端向服務(wù)器請求的地圖瓦片的數(shù)目快速的貼近當(dāng)前的網(wǎng)絡(luò)狀況;當(dāng)網(wǎng)絡(luò)狀況較為理想,服務(wù)器能提供足夠的地圖瓦片資源,反饋的地圖瓦片的數(shù)目與客戶端向服務(wù)器請求的地圖瓦片的數(shù)目相差較少時,將客戶端向服務(wù)器請求的地圖瓦片的數(shù)目較為準(zhǔn)確的貼近當(dāng)前的網(wǎng)絡(luò)狀況。
[0050]客戶端也可以通過其它方法將增大的瓦片反饋數(shù)作為修正后的瓦片請求數(shù),本實施例中不做限定。
[0051]206、客戶端將瓦片反饋數(shù)作為修正后的瓦片請求數(shù)。
[0052]若瓦片反饋數(shù)不小于步驟201中確定的最大值,則客戶端將瓦片反饋數(shù)作為修正后的瓦片請求數(shù)。即,若服務(wù)器反饋給客戶端的地圖瓦片數(shù)目達到服務(wù)器能提供的地圖瓦片數(shù)目的最大值,則客戶端將瓦片反饋數(shù)作為修正后的瓦片請求數(shù)。
[0053]可以理解的,步驟205或206中得到了修正后的瓦片請求數(shù)之后,可以將該修正后的瓦片請求數(shù)作為步驟202中客戶端確定的瓦片請求數(shù),循環(huán)執(zhí)行步驟202至206,以使得客戶端源源不斷的從服務(wù)器處獲取地圖服務(wù)資源。數(shù)學(xué)上可以證明,當(dāng)采取步驟205中所舉的例子所提供的方法,且循環(huán)執(zhí)行步驟202至206時,當(dāng)瓦片反饋數(shù)=瓦片請求數(shù)-1時,該方法達到穩(wěn)定狀態(tài)。
[0054]本實施例中,客戶端確定瓦片請求數(shù)、客戶端確定請求信息,并將請求信息發(fā)送給服務(wù)器,該請求信息用于表示客戶端向服務(wù)器請求瓦片請求數(shù)個地圖瓦片。通過這樣的方法,使得客戶端可以通過一次請求就向服務(wù)器請求多張地圖瓦片,這樣就減少了客戶端與服務(wù)器的交互次數(shù),節(jié)約了客戶端從服務(wù)器處獲取地圖瓦片的時間,且減輕了服務(wù)器的負擔(dān)。同時,客戶端可以通過試探的方式,根據(jù)服務(wù)器反饋的地圖瓦片的數(shù)目,逐步確定最貼近當(dāng)前網(wǎng)絡(luò)狀況的瓦片請求數(shù),這樣可以合理的利用網(wǎng)絡(luò)帶寬,提高了網(wǎng)絡(luò)的利用效率。
[0055]為了便于理解上述實施例,下面以一個具體的應(yīng)用場景為例進行描述。
[0056]在GIS系統(tǒng)中,客戶端獲取當(dāng)前網(wǎng)絡(luò)的帶寬,為100Mb/s??蛻舳藦姆?wù)器處獲取bmp格式的單張地圖瓦片的寬度與高度均為256個像素,于是計算單張地圖瓦片的大小=256*256*4 = 262144個字節(jié)。于是客戶端確定服務(wù)器能提供的地圖瓦片數(shù)目的最大值為100M+262144 = 381.47張/s,舍去小數(shù)部分后,得到服務(wù)器能提供的地圖瓦片數(shù)目的最大值為381張。
[0057]客戶端確定瓦片請求數(shù)為該最大值381,并構(gòu)造381個瓦片的URL,利用CURL將該每個URL分別與一個本地單句柄對象相關(guān)聯(lián),再將該381個本地單句柄對象與一個本地多句柄對象相關(guān)聯(lián)??蛻舳耸褂肅URL的執(zhí)行函數(shù),根據(jù)該本地單句柄對象生成請求信息,向服務(wù)器請求381個地圖瓦片數(shù)據(jù)。服務(wù)器接收到請求信息后,可以從該請求信息中獲取該本地多句柄對象,進而獲取381本地單句柄對象,最后獲取每個地圖瓦片對應(yīng)的URL。服務(wù)器根據(jù)每個地圖瓦片對應(yīng)的URL,確定地圖瓦片,并將確定的地圖瓦片反饋給客戶端。
[0058]客戶端接收服務(wù)器反饋的地圖瓦片,并確定服務(wù)器反饋的地圖瓦片的瓦片反饋數(shù)為 360。
[0059]其中,客戶端中人為設(shè)置有預(yù)設(shè)值10。由于瓦片請求數(shù)與瓦片反饋數(shù)的差值為21,大于10,故客戶端將瓦片請求數(shù)修正為360+10 = 370,并將修正后的瓦片請求數(shù)370作為最新的瓦片請求數(shù),再次向服務(wù)器請求地圖瓦片數(shù)據(jù)。此次客戶端接收服務(wù)器反饋的地圖瓦片的瓦片反饋數(shù)為367。
[0060]由于新的瓦片請求數(shù)與瓦片反饋數(shù)的差值為3,小于10,故客戶端將瓦片請求數(shù)修正為367+1 = 368,并將修正后的瓦片請求數(shù)368作為最新的瓦片請求數(shù),再次向服務(wù)器請求地圖瓦片數(shù)據(jù)。此次客戶端接收服務(wù)器反饋的地圖瓦片的瓦片反饋數(shù)為368。
[0061]由于新的瓦片請求數(shù)與瓦片反饋數(shù)的差值為0,但新的瓦片反饋數(shù)小于服務(wù)器能提供的地圖瓦片數(shù)目的最大值381,故客戶端將瓦片請求數(shù)修正為368+1 = 369,并將修正后的瓦片請求數(shù)369作為最新的瓦片請求數(shù),再次向服務(wù)器請求地圖瓦片數(shù)據(jù)。此次客戶端接收服務(wù)器反饋的地圖瓦片的瓦片反饋數(shù)仍為368。
[0062]之后,客戶端每次向服務(wù)器請求369張地圖瓦片,得到服務(wù)器反饋的368張地圖瓦片,就這樣源源不斷的從服務(wù)器處獲取地圖服務(wù)資源。
[0063]本發(fā)明實施例還提供了一種客戶端,應(yīng)用于地圖服務(wù)資源獲取系統(tǒng),請參閱圖3,包括:
[0064]瓦片請求數(shù)確定模塊301,用于確定瓦片請求數(shù),所述瓦片請求數(shù)用于表示所述客戶端待要向服務(wù)器請求的地圖瓦片的數(shù)量;
[0065]請求消息確定模塊302,用于確定請求信息,并將所述請求信息發(fā)送給所述服務(wù)器,所述請求信息用于表示所述客戶端向所述服務(wù)器請求所述瓦片請求數(shù)個地圖瓦片。
[0066]本實施例中,瓦片請求數(shù)確定模塊301確定瓦片請求數(shù)、請求消息確定模塊302確定請求信息,并將請求信息發(fā)送給服務(wù)器,該請求信息用于表示客戶端向服務(wù)器請求瓦片請求數(shù)個地圖瓦片。通過這樣的方法,使得客戶端可以通過一次請求就向服務(wù)器請求多張地圖瓦片,這樣就減少了客戶端與服務(wù)器的交互次數(shù),節(jié)約了客戶端從服務(wù)器處獲取地圖瓦片的時間,且減輕了服務(wù)器的負擔(dān)。
[0067]其中,請求消息確定模塊302可以有多種結(jié)構(gòu)。例如包括:
[0068]URL構(gòu)造單元3021,用于構(gòu)造所述瓦片請求數(shù)個地圖瓦片中,每個地圖瓦片所對應(yīng)的URL ;
[0069]單句柄關(guān)聯(lián)單元3022,用于將所述每個地圖瓦片所對應(yīng)的URL與一個本地單句柄對象相關(guān)聯(lián);
[0070]多句柄關(guān)聯(lián)單元3023,用于將所有與所述每個地圖瓦片對應(yīng)的URL相關(guān)聯(lián)的本地單句柄對象與一個本地多句柄對象相關(guān)聯(lián);
[0071]請求消息確定單元3024,用于確定請求信息,并將所述請求信息發(fā)送給所述服務(wù)器,所述請求信息包括所述本地多句柄對象。
[0072]為了與不斷變化的網(wǎng)絡(luò)相適應(yīng),客戶端需要接收服務(wù)器反饋的地圖瓦片,并確定服務(wù)器反饋的地圖瓦片的瓦片反饋數(shù),然后根據(jù)瓦片反饋數(shù)修正瓦片請求數(shù)。優(yōu)選的,客戶端還可以包括:
[0073]瓦片反饋數(shù)確定模塊303,用于接收所述服務(wù)器反饋的地圖瓦片,并確定所述服務(wù)器反饋的地圖瓦片的瓦片反饋數(shù),所述瓦片反饋數(shù)用于表示所述服務(wù)器反饋的地圖瓦片的數(shù)目;
[0074]瓦片請求數(shù)修正模塊304,用于根據(jù)所述瓦片反饋數(shù),修正所述瓦片請求數(shù)。
[0075]其中,所述客戶端還可以包括最大值確定模塊305,用于確定所述服務(wù)器能提供的地圖瓦片數(shù)目的最大值;
[0076]若客戶端包括最大值確定模塊305,則瓦片請求數(shù)修正模塊具體可以用于:
[0077]若所述瓦片反饋數(shù)小于所述最大值,則將增大的瓦片反饋數(shù)作為修正后的瓦片請求數(shù);
[0078]若所述瓦片反饋數(shù)不小于所述最大值,則將所述瓦片反饋數(shù)作為修正后的瓦片請求數(shù)。
[0079]優(yōu)選的,所述瓦片請求數(shù)修正模塊還可以用于:若所述瓦片請求數(shù)與所述瓦片反饋數(shù)的差值不大于預(yù)設(shè)值,則將所述瓦片請求數(shù)修正為:所述瓦片反饋數(shù)加I。
[0080]優(yōu)選的,所述瓦片請求數(shù)修正模塊還可以用于:若所述瓦片請求數(shù)與所述瓦片反饋數(shù)的差值大于預(yù)設(shè)值,則將所述瓦片請求數(shù)修正為:所述瓦片反饋數(shù)加所述預(yù)設(shè)值。
[0081]為了便于理解上述實施例,下面以一個具體的應(yīng)用場景為例進行描述。
[0082]在GIS系統(tǒng)中,最大值確定模塊305獲取當(dāng)前網(wǎng)絡(luò)的帶寬,為100Mb/s??蛻舳藦姆?wù)器處獲取bmp格式的單張地圖瓦片的寬度與高度均為256個像素,于是計算單張地圖瓦片的大小=256*256*4 = 262144個字節(jié)。于是客戶端確定服務(wù)器能提供的地圖瓦片數(shù)目的最大值為100M+262144 = 381.47張/s,舍去小數(shù)部分后,得到服務(wù)器能提供的地圖瓦片數(shù)目的最大值為381張。
[0083]瓦片請求數(shù)確定模塊301確定瓦片請求數(shù)為該最大值381,URL構(gòu)造單元3021構(gòu)造381個瓦片的URL,單句柄關(guān)聯(lián)單元3022利用CURL將該每個URL分別與一個本地單句柄對象相關(guān)聯(lián),多句柄關(guān)聯(lián)單元3023將該381個本地單句柄對象與一個本地多句柄對象相關(guān)聯(lián)。請求消息確定單元3024使用⑶RL的執(zhí)行函數(shù),根據(jù)該本地單句柄對象生成請求信息,向服務(wù)器請求381個地圖瓦片數(shù)據(jù)。服務(wù)器接收到請求信息后,可以從該請求信息中獲取該本地多句柄對象,進而獲取381本地單句柄對象,最后獲取每個地圖瓦片對應(yīng)的URL。服務(wù)器根據(jù)每個地圖瓦片對應(yīng)的URL,確定地圖瓦片,并將確定的地圖瓦片反饋給客戶端。
[0084]瓦片反饋數(shù)確定模塊303接收服務(wù)器反饋的地圖瓦片,并確定服務(wù)器反饋的地圖瓦片的瓦片反饋數(shù)為360。
[0085]其中,客戶端中人為設(shè)置有預(yù)設(shè)值10。由于瓦片請求數(shù)與瓦片反饋數(shù)的差值為21,大于10,故瓦片請求數(shù)修正模塊304將瓦片請求數(shù)修正為360+10 = 370,瓦片請求數(shù)確定模塊301將修正后的瓦片請求數(shù)370作為最新的瓦片請求數(shù),請求消息確定模塊302再次向服務(wù)器請求地圖瓦片數(shù)據(jù)。此次客戶端接收服務(wù)器反饋的地圖瓦片的瓦片反饋數(shù)為367。
[0086]由于新的瓦片請求數(shù)與瓦片反饋數(shù)的差值為3,小于10,故瓦片請求數(shù)修正模塊304將瓦片請求數(shù)修正為367+1 = 368,瓦片請求數(shù)確定模塊301將修正后的瓦片請求數(shù)368作為最新的瓦片請求數(shù),請求消息確定模塊302再次向服務(wù)器請求地圖瓦片數(shù)據(jù)。此次客戶端接收服務(wù)器反饋的地圖瓦片的瓦片反饋數(shù)為368。
[0087]由于新的瓦片請求數(shù)與瓦片反饋數(shù)的差值為0,但新的瓦片反饋數(shù)小于服務(wù)器能提供的地圖瓦片數(shù)目的最大值381,故瓦片請求數(shù)修正模塊304將瓦片請求數(shù)修正為368+1=369,瓦片請求數(shù)確定模塊301將修正后的瓦片請求數(shù)369作為最新的瓦片請求數(shù),請求消息確定模塊302再次向服務(wù)器請求地圖瓦片數(shù)據(jù)。此次客戶端接收服務(wù)器反饋的地圖瓦片的瓦片反饋數(shù)仍為368。
[0088]之后,請求消息確定模塊302每次向服務(wù)器請求369張地圖瓦片,得到服務(wù)器反饋的368張地圖瓦片,就這樣源源不斷的從服務(wù)器處獲取地圖服務(wù)資源。
[0089]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
[0090]在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0091]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0092]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
[0093]所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0094]以上所述,以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
【權(quán)利要求】
1.一種地圖服務(wù)資源獲取方法,其特征在于,包括: 客戶端確定瓦片請求數(shù),所述瓦片請求數(shù)用于表示所述客戶端待要向服務(wù)器請求的地圖瓦片的數(shù)量; 所述客戶端確定請求信息,并將所述請求信息發(fā)送給所述服務(wù)器,所述請求信息用于表示所述客戶端向所述服務(wù)器請求所述瓦片請求數(shù)個地圖瓦片。
2.根據(jù)權(quán)利要求1所述的地圖服務(wù)資源獲取方法,其特征在于,所述客戶端確定請求信息,并將所述請求信息發(fā)送給所述服務(wù)器包括: 所述客戶端構(gòu)造所述瓦片請求數(shù)個地圖瓦片中,每個地圖瓦片所對應(yīng)的URL ; 所述客戶端將所述每個地圖瓦片所對應(yīng)的URL與一個本地單句柄對象相關(guān)聯(lián); 所述客戶端將所有與所述每個地圖瓦片對應(yīng)的URL相關(guān)聯(lián)的本地單句柄對象與一個本地多句柄對象相關(guān)聯(lián); 所述客戶端確定請求信息,并將所述請求信息發(fā)送給所述服務(wù)器,所述請求信息包括所述本地多句柄對象。
3.根據(jù)權(quán)利要求1或2所述的地圖服務(wù)資源獲取方法,其特征在于,所述客戶端確定請求信息,并將所述請求信息發(fā)送給所述服務(wù)器之后還包括: 所述客戶端接收所述服務(wù)器反饋的地圖瓦片,并確定所述服務(wù)器反饋的地圖瓦片的瓦片反饋數(shù),所述瓦片反饋數(shù)用于表示所述服務(wù)器反饋的地圖瓦片的數(shù)目; 所述客戶端根據(jù)所述瓦片反饋數(shù),修正所述瓦片請求數(shù)。
4.根據(jù)權(quán)利要求3所述的地圖服務(wù)資源獲取方法,其特征在于,所述客戶端確定瓦片請求數(shù)之前還包括: 所述客戶端確定所述服務(wù)器能提供的地圖瓦片數(shù)目的最大值; 所述客戶端根據(jù)所述瓦片反饋數(shù),修正所述瓦片請求數(shù)包括: 若所述瓦片反饋數(shù)小于所述最大值,則所述客戶端將增大的瓦片反饋數(shù)作為修正后的瓦片請求數(shù); 若所述瓦片反饋數(shù)不小于所述最大值,則所述客戶端將所述瓦片反饋數(shù)作為修正后的瓦片請求數(shù)。
5.根據(jù)權(quán)利要求4所述的地圖服務(wù)資源獲取方法,其特征在于,所述若所述瓦片反饋數(shù)小于所述最大值,則所述客戶端將增大的瓦片反饋數(shù)作為修正后的瓦片請求數(shù)包括: 若所述瓦片請求數(shù)與所述瓦片反饋數(shù)的差值不大于預(yù)設(shè)值,則所述客戶端將所述瓦片請求數(shù)修正為:所述瓦片反饋數(shù)加I ; 和/或, 若所述瓦片請求數(shù)與所述瓦片反饋數(shù)的差值大于預(yù)設(shè)值,則所述客戶端將所述瓦片請求數(shù)修正為:所述瓦片反饋數(shù)加所述預(yù)設(shè)值。
6.一種客戶端,應(yīng)用于地圖服務(wù)資源獲取系統(tǒng),其特征在于,包括: 瓦片請求數(shù)確定模塊,用于確定瓦片請求數(shù),所述瓦片請求數(shù)用于表示所述客戶端待要向服務(wù)器請求的地圖瓦片的數(shù)量; 請求消息確定模塊,用于確定請求信息,并將所述請求信息發(fā)送給所述服務(wù)器,所述請求信息用于表示所述客戶端向所述服務(wù)器請求所述瓦片請求數(shù)個地圖瓦片。
7.根據(jù)權(quán)利要求6所述的客戶端,其特征在于,所述請求消息確定模塊包括: URL構(gòu)造單元,用于構(gòu)造所述瓦片請求數(shù)個地圖瓦片中,每個地圖瓦片所對應(yīng)的URL ; 單句柄關(guān)聯(lián)單元,用于將所述每個地圖瓦片所對應(yīng)的URL與一個本地單句柄對象相關(guān)聯(lián); 多句柄關(guān)聯(lián)單元,用于將所有與所述每個地圖瓦片對應(yīng)的URL相關(guān)聯(lián)的本地單句柄對象與一個本地多句柄對象相關(guān)聯(lián); 請求消息確定單元,用于確定請求信息,并將所述請求信息發(fā)送給所述服務(wù)器,所述請求信息包括所述本地多句柄對象。
8.根據(jù)權(quán)利要求6或7所述的客戶端,其特征在于,所述客戶端還包括: 瓦片反饋數(shù)確定模塊,用于接收所述服務(wù)器反饋的地圖瓦片,并確定所述服務(wù)器反饋的地圖瓦片的瓦片反饋數(shù),所述瓦片反饋數(shù)用于表示所述服務(wù)器反饋的地圖瓦片的數(shù)目;瓦片請求數(shù)修正模塊,用于根據(jù)所述瓦片反饋數(shù),修正所述瓦片請求數(shù)。
9.根據(jù)權(quán)利要求8所述的客戶端,其特征在于,所述客戶端還包括: 最大值確定模塊,用于確定所述服務(wù)器能提供的地圖瓦片數(shù)目的最大值; 所述瓦片請求數(shù)修正模塊具體用于: 若所述瓦片反饋數(shù)小于所述最大值,則將增大的瓦片反饋數(shù)作為修正后的瓦片請求數(shù); 若所述瓦片反饋數(shù)不小于所述最大值,則將所述瓦片反饋數(shù)作為修正后的瓦片請求數(shù)。
10.根據(jù)權(quán)利要求9所述的客戶端,其特征在于,所述瓦片請求數(shù)修正模塊還用于: 若所述瓦片請求數(shù)與所述瓦片反饋數(shù)的差值不大于預(yù)設(shè)值,則將所述瓦片請求數(shù)修正為:所述瓦片反饋數(shù)加I ; 和/或, 若所述瓦片請求數(shù)與所述瓦片反饋數(shù)的差值大于預(yù)設(shè)值,則將所述瓦片請求數(shù)修正為:所述瓦片反饋數(shù)加所述預(yù)設(shè)值。
【文檔編號】H04L29/08GK104468820SQ201410810737
【公開日】2015年3月25日 申請日期:2014年12月23日 優(yōu)先權(quán)日:2014年12月23日
【發(fā)明者】陳泓坤 申請人:廣東威創(chuàng)視訊科技股份有限公司