一種構(gòu)建專題地圖的方法及應(yīng)用該方法的移動(dòng)終端的制作方法
【專利摘要】本發(fā)明公開了一種構(gòu)建專題地圖的方法,所述方法步驟包括:根據(jù)用戶選取的地圖數(shù)據(jù)源,判斷各地圖服務(wù)的類型;根據(jù)各地圖服務(wù)的類型采用對(duì)應(yīng)的算法,對(duì)用戶請(qǐng)求地圖的位置進(jìn)行相應(yīng)操作,以獲取相應(yīng)的瓦片坐標(biāo);利用瓦片坐標(biāo)生成特定地圖服務(wù)的URL地址,依次向地圖服務(wù)器請(qǐng)求,獲取相應(yīng)的地圖瓦片;對(duì)獲取所得的各地圖瓦片進(jìn)行圖層疊加,并在屏幕的同一位置上依次顯示各地圖瓦片,即可得到所需的專題地圖。將本發(fā)明提供的方法應(yīng)用于智能手機(jī)等移動(dòng)平臺(tái)上,用戶在查看地圖時(shí)可以方便地對(duì)多個(gè)不同類型的瓦片地圖服務(wù)進(jìn)行訪問(wèn),并且在操作時(shí)還可在地圖的多個(gè)圖層之間的進(jìn)行切換和疊加等操作,以及對(duì)地圖進(jìn)行平移、縮放等操作。
【專利說(shuō)明】一種構(gòu)建專題地圖的方法及應(yīng)用該方法的移動(dòng)終端
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種構(gòu)建專題地圖的方法以及利用該方法進(jìn)行構(gòu)建專題地圖的移動(dòng)終端。
【背景技術(shù)】
[0002]隨著移動(dòng)互聯(lián)網(wǎng)與GIS的迅速發(fā)展和廣泛應(yīng)用,企業(yè)和個(gè)人用戶對(duì)專題地圖需求越來(lái)越大。
[0003]地理信息系統(tǒng)(GeographicInformation System或 Geo — Information system,GIS)有時(shí)又稱為“地學(xué)信息系統(tǒng)”。它是一種特定的十分重要的空間信息系統(tǒng)。它是在計(jì)算機(jī)硬、軟件系統(tǒng)支持下,對(duì)整個(gè)或部分地球表層(包括大氣層)空間中的有關(guān)地理分布數(shù)據(jù)進(jìn)行采集、儲(chǔ)存、管理、運(yùn)算、分析、顯示和描述的技術(shù)系統(tǒng)。
[0004]專題地圖往往范圍比較小,但是專題地圖具有針對(duì)性,其數(shù)據(jù)更專業(yè),更具體,因此在某些方面具有大范圍地圖所不具備的優(yōu)點(diǎn),如地圖更新及時(shí)、精度高、POI (“Pointof Interest”的縮寫,可以翻譯成“信息點(diǎn)”),數(shù)據(jù)更加精細(xì)和豐富。開放地理空間信息聯(lián)盟(Open Geospatial Consortium-OGC)制定了通過(guò)HTTP協(xié)議(超文本傳輸協(xié)議(HTTP-Hypertext transfer protocol))訪問(wèn)空間數(shù)據(jù)的一系列接口規(guī)范,常見的瓦片地圖服務(wù)有WMS (Web Map Service, 一種網(wǎng)絡(luò)地圖服務(wù)規(guī)范)、TMS (Tile Map Service, 一種瓦片地圖服務(wù)規(guī)范)、WMTS (Web Map Tile Service,—種網(wǎng)絡(luò)地圖瓦片服務(wù)規(guī)范)等;通過(guò)這些服務(wù)可以訪問(wèn)地圖瓦片,然后將地圖瓦片組合成一張地圖。
[0005]目前大多數(shù)移動(dòng)平臺(tái)的地圖SDK (SDK (Software Development Kit,即軟件開發(fā)工具包))都只支持其中的一種服務(wù),而且不支持自定義地圖數(shù)據(jù)源,也無(wú)法進(jìn)行圖層疊力口,因此無(wú)法構(gòu)建出滿足特定需要的專題地圖。地圖自定義OGC數(shù)據(jù)源,就是用戶可以使用一個(gè)或者多個(gè)不同的OGC地圖服務(wù)來(lái)構(gòu)建專題地圖,在現(xiàn)有地圖上疊加自有的專題地圖或者完全使用自有的地圖,是本發(fā)明的出發(fā)點(diǎn)。
【發(fā)明內(nèi)容】
[0006]本發(fā)明提供一種構(gòu)建專題地圖的方法,利用該方法可實(shí)現(xiàn)自定義訪問(wèn)多個(gè)不同瓦片地圖服務(wù)類型的功能,具體為可訪問(wèn)支持OGC的WMS、TMS以及WTMS等服務(wù),并且可在多個(gè)圖層之間的進(jìn)行切換和疊加等操作。
[0007]本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:
一種構(gòu)建專題地圖的方法,應(yīng)用于OGC地圖數(shù)據(jù)系統(tǒng)中,所述OGC地圖數(shù)據(jù)系統(tǒng)包括地圖服務(wù)器、地圖SDK模塊以及應(yīng)用程序模塊,所述地圖服務(wù)器包括有用于負(fù)責(zé)用戶的請(qǐng)求處理和數(shù)據(jù)轉(zhuǎn)換的Web服務(wù)器與負(fù)責(zé)存取和管理地圖數(shù)據(jù)源的數(shù)據(jù)庫(kù);所述地圖SDK模塊用于提供獲取地圖數(shù)據(jù)源的接口以及供用戶操作的界面控件;所述應(yīng)用程序模塊用于調(diào)用地圖數(shù)據(jù)源的數(shù)據(jù),并用于實(shí)現(xiàn)地圖顯示、定位和/或搜索功能;
所述方法步驟包括: 51、根據(jù)用戶選取的地圖數(shù)據(jù)源,判斷各地圖服務(wù)的類型;
52、根據(jù)各地圖服務(wù)的類型采用對(duì)應(yīng)的算法,對(duì)用戶請(qǐng)求地圖的位置進(jìn)行相應(yīng)操作,以獲取相應(yīng)的瓦片坐標(biāo);
53、利用瓦片坐標(biāo)生成特定地圖服務(wù)的URL地址,依次向地圖服務(wù)器請(qǐng)求,獲取相應(yīng)的地圖瓦片;
54、對(duì)獲取所得的各地圖瓦片進(jìn)行圖層疊加,并在屏幕的同一位置上依次顯示各地圖瓦片,即可得到所需的專題地圖。
[0008]進(jìn)一步地,所述方法還包括:S5、響應(yīng)用戶在所述界面控件上對(duì)所述專題地圖的相應(yīng)操作,以實(shí)現(xiàn)對(duì)所述專題地圖的平移和/或縮放。
[0009]將各地圖瓦片進(jìn)行圖層疊加前,為每一地圖瓦片所在的圖層設(shè)置一用于表示地圖瓦片有效范圍的多邊形區(qū)域,當(dāng)所需地圖瓦片不在此多邊形區(qū)域內(nèi)時(shí)便放棄向地圖服務(wù)器發(fā)送請(qǐng)求,或者當(dāng)請(qǐng)求地圖瓦片的縮放級(jí)別超出了地圖數(shù)據(jù)源的縮放范圍時(shí),也終止請(qǐng)求向地圖服務(wù)器發(fā)送請(qǐng)求。
[0010]較佳地,所述地圖SDK模塊設(shè)置有圖片的內(nèi)存緩存與磁盤緩存的雙緩存機(jī)制,以提高地圖的顯示速度;所述地圖服務(wù)器為用戶自定義數(shù)據(jù)源創(chuàng)建的OGC地圖服務(wù)器或網(wǎng)上提供OGC地圖瓦片數(shù)據(jù)的地圖服務(wù)器;所述地圖服務(wù)的類型包括WMS、TMS以及WTMS中一種或多種。
[0011]本發(fā)明還提供了一種移動(dòng)終端,所述移動(dòng)終端設(shè)置有地圖SDK模塊以及應(yīng)用程序模塊,所述地圖SDK模塊用于提供獲取地圖數(shù)據(jù)源的接口以及供用戶操作的界面控件,所述應(yīng)用程序模塊用于調(diào)用地圖數(shù)據(jù)源的數(shù)據(jù),并用于實(shí)現(xiàn)地圖顯示、定位和/或搜索功能;所述移動(dòng)終端在利用所述地圖SDK模塊以及應(yīng)用程序模塊構(gòu)建專題地圖時(shí)采用基于上述方法來(lái)進(jìn)行構(gòu)建專題地圖;優(yōu)選地,所述移動(dòng)終端采用安卓操作系統(tǒng)。
[0012]將本發(fā)明應(yīng)用于移動(dòng)終端,如智能手機(jī)等移動(dòng)平臺(tái)上,用戶在查看地圖時(shí)可以方便地對(duì)多個(gè)不同類型的瓦片地圖服務(wù)進(jìn)行訪問(wèn),并且在操作時(shí)還可在地圖的多個(gè)圖層之間的進(jìn)行切換和疊加等操作,以及對(duì)地圖進(jìn)行平移、縮放等操作。
【專利附圖】
【附圖說(shuō)明】
[0013]附圖1為本發(fā)明實(shí)施例中OGC地圖數(shù)據(jù)系統(tǒng)的結(jié)構(gòu)模塊示意圖;
附圖2為本發(fā)明實(shí)施例中的方法流程示意圖。
【具體實(shí)施方式】
[0014]在本實(shí)施例中,將本發(fā)明應(yīng)用于采用安卓系統(tǒng)的智能手機(jī)中,為了便于本領(lǐng)域技術(shù)人員的理解,下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的描述。
[0015]如附圖1所示,為一種OGC地圖數(shù)據(jù)系統(tǒng)的結(jié)構(gòu)模塊示意圖,該OGC地圖數(shù)據(jù)系統(tǒng)包括地圖服務(wù)器、地圖SDK模塊以及應(yīng)用程序模塊。
[0016]地圖服務(wù)器可以為用戶自定義數(shù)據(jù)源創(chuàng)建的OGC地圖服務(wù)器,或網(wǎng)上提供OGC地圖瓦片數(shù)據(jù)的地圖服務(wù)器(如ArcGis Server和GeoServer)。不管是自定義數(shù)據(jù)源創(chuàng)建的OGC地圖服務(wù)器還是網(wǎng)上提供OGC地圖瓦片數(shù)據(jù)的地圖服務(wù)器,均需要知道其服務(wù)類型(麗S、TMS或WTMS)和訪問(wèn)地址、瓦片范圍及原點(diǎn)、縮放范圍、顯示的層次等相關(guān)參數(shù),才能對(duì)地圖服務(wù)器進(jìn)行訪問(wèn)。因此,在創(chuàng)建自定義數(shù)據(jù)源創(chuàng)建的OGC地圖服務(wù)器時(shí),需要對(duì)上述相關(guān)參數(shù)進(jìn)行相應(yīng)的設(shè)置。地圖服務(wù)器內(nèi)包括有Web服務(wù)器和數(shù)據(jù)庫(kù),Web服務(wù)器主要用于負(fù)責(zé)用戶的請(qǐng)求處理和數(shù)據(jù)轉(zhuǎn)換,數(shù)據(jù)庫(kù)主要負(fù)責(zé)存取和管理地圖數(shù)據(jù)源(數(shù)據(jù)庫(kù)通常采用的系統(tǒng)有Mysql或Postgresql )。
[0017]地圖SDK模塊用于提供獲取地圖數(shù)據(jù)源的接口以及供用戶操作的界面控件;該地圖SDK模塊是本發(fā)明的核心模塊,其位于智能手機(jī)的應(yīng)用程序組件中,用于為應(yīng)用程序模塊提供獲取地圖數(shù)據(jù)源的接口 ;界面控件是用來(lái)顯示和操作地圖的;此外,地圖SDK模塊內(nèi)還封裝有定位功能,以及可預(yù)先配置好地圖數(shù)據(jù)源,以方便用戶或開發(fā)者使用。
[0018]應(yīng)用程序模塊安裝于智能手機(jī)中,其用于調(diào)用地圖數(shù)據(jù)源的數(shù)據(jù),并用于實(shí)現(xiàn)地圖顯示、定位以及搜索等功能。此外,該應(yīng)用程序模塊還可以對(duì)地圖SDK模塊的功能進(jìn)行擴(kuò)展,如地圖的顯示樣式、增加新的圖層,自定義用戶動(dòng)作的響應(yīng)事件等。用戶通過(guò)在智能手機(jī)上的該應(yīng)用程序模塊進(jìn)行相應(yīng)的設(shè)置,即可同時(shí)加載多個(gè)自定義地圖圖層,并且可以在不同圖層之間任意切換,這樣可以使用戶能看到任意一個(gè)單獨(dú)地圖圖層,或者幾個(gè)圖層疊加在一起疊加地圖,充分發(fā)揮每一個(gè)地圖作用。
[0019]以下對(duì)在智能手機(jī)中進(jìn)行構(gòu)建專題地圖的方法作進(jìn)一步的描述,如附圖2所示,該方法步驟包括:
51、根據(jù)用戶選取的地圖數(shù)據(jù)源,判斷各地圖服務(wù)的類型;
52、根據(jù)各地圖服務(wù)的類型采用對(duì)應(yīng)的算法,對(duì)用戶請(qǐng)求地圖的位置進(jìn)行相應(yīng)操作,以獲取相應(yīng)的瓦片坐標(biāo);
53、利用瓦片坐標(biāo)生成特定地圖服務(wù)的URL地址,依次向地圖服務(wù)器請(qǐng)求,獲取相應(yīng)的地圖瓦片;
54、對(duì)獲取所得的各地圖瓦片進(jìn)行圖層疊加,并在屏幕的同一位置上依次顯示各地圖瓦片,即可得到所需的專題地圖;
55、響應(yīng)用戶在所述界面控件上對(duì)所述專題地圖的相應(yīng)操作,以實(shí)現(xiàn)對(duì)所述專題地圖的平移和/或縮放。
[0020]當(dāng)?shù)貓D服務(wù)類型存在多種時(shí),如同時(shí)存在WMS、TMS與WTMS這三種類型,由于不同的地圖服務(wù)其采用的坐標(biāo)系很可能不同,而對(duì)不同坐標(biāo)系的地圖進(jìn)行疊加時(shí)存在偏移,有時(shí)產(chǎn)生的偏移會(huì)比較大。因此,為避免地圖產(chǎn)生偏移的情況出現(xiàn),不管是自定義數(shù)據(jù)源創(chuàng)建的OGC地圖服務(wù)器還是網(wǎng)上提供OGC地圖瓦片數(shù)據(jù)的地圖服務(wù)器,其采取的坐標(biāo)系均應(yīng)統(tǒng)一。
[0021]圖層疊加的基本原理就是在屏幕的同一位置依次將不同地圖瓦片繪制并顯示到屏幕上。為了減少向地圖服務(wù)器發(fā)送的無(wú)效請(qǐng)求,提高OGC地圖數(shù)據(jù)系統(tǒng)的工作效率,在將各地圖瓦片進(jìn)行圖層疊加前,為每一地圖瓦片所在的圖層設(shè)置一用于表示地圖瓦片有效范圍的多邊形區(qū)域,當(dāng)所需地圖瓦片不在此多邊形區(qū)域內(nèi)時(shí)便放棄向地圖服務(wù)器發(fā)送請(qǐng)求,或者當(dāng)請(qǐng)求地圖瓦片的縮放級(jí)別超出了地圖數(shù)據(jù)源的縮放范圍時(shí),也終止請(qǐng)求向地圖服務(wù)器發(fā)送請(qǐng)求。
[0022]由于地圖瓦片文件的容量大,占用的空間較大,因此,每次均通過(guò)網(wǎng)絡(luò)向網(wǎng)上提供OGC地圖瓦片數(shù)據(jù)的地圖服務(wù)器請(qǐng)求獲取地圖瓦片的數(shù)據(jù)的效率不高,因此需要使用緩存技術(shù)來(lái)提高地圖顯示速度。在本實(shí)施例中,地圖SDK模塊設(shè)置有圖片的內(nèi)存緩存與磁盤緩存的雙緩存機(jī)制,即通過(guò)雙緩存技術(shù)來(lái)大大提高本地圖顯示的效率。
[0023]此外,由于地圖瓦片分為透明格式(PNG格式)和不透明格式(PNG或JPG)兩種格式,若把透明圖層疊加到其他圖層上,可以同時(shí)看到兩個(gè)圖層,若把一個(gè)不透明圖層疊加到其他圖層上,就會(huì)遮蓋原來(lái)的圖層。因此,在本發(fā)明中,各地圖服務(wù)器中的地圖瓦片的格式均優(yōu)先選用透明格式。
[0024]上述實(shí)施例中提到的內(nèi)容為本發(fā)明較佳的實(shí)施方式,并非是對(duì)本發(fā)明的限定,在不脫離本發(fā)明構(gòu)思的前提下,任何顯而易見的替換均在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種構(gòu)建專題地圖的方法,應(yīng)用于OGC地圖數(shù)據(jù)系統(tǒng)中,所述OGC地圖數(shù)據(jù)系統(tǒng)包括地圖服務(wù)器、地圖SDK模塊以及應(yīng)用程序模塊,所述地圖服務(wù)器包括有用于負(fù)責(zé)用戶的請(qǐng)求處理和數(shù)據(jù)轉(zhuǎn)換的Web服務(wù)器與負(fù)責(zé)存取和管理地圖數(shù)據(jù)源的數(shù)據(jù)庫(kù);所述地圖SDK模塊用于提供獲取地圖數(shù)據(jù)源的接口以及供用戶操作的界面控件;所述應(yīng)用程序模塊用于調(diào)用地圖數(shù)據(jù)源的數(shù)據(jù),并用于實(shí)現(xiàn)地圖顯示、定位和/或搜索功能; 所述方法步驟包括: 51、根據(jù)用戶選取的地圖數(shù)據(jù)源,判斷各地圖服務(wù)的類型; 52、根據(jù)各地圖服務(wù)的類型采用對(duì)應(yīng)的算法,對(duì)用戶請(qǐng)求地圖的位置進(jìn)行相應(yīng)操作,以獲取相應(yīng)的瓦片坐標(biāo); 53、利用瓦片坐標(biāo)生成特定地圖服務(wù)的URL地址,依次向地圖服務(wù)器請(qǐng)求,獲取相應(yīng)的地圖瓦片; 54、對(duì)獲取所得的各地圖瓦片進(jìn)行圖層疊加,并在屏幕的同一位置上依次顯示各地圖瓦片,即可得到所需的專題地圖。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:S5、響應(yīng)用戶在所述界面控件上對(duì)所述專題地圖的相應(yīng)操作,以實(shí)現(xiàn)對(duì)所述專題地圖的平移和/或縮放。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于:在將各地圖瓦片進(jìn)行圖層疊加前,為每一地圖瓦片所在的圖層設(shè)置一用于表示地圖瓦片有效范圍的多邊形區(qū)域,當(dāng)所需地圖瓦片不在此多邊形區(qū)域內(nèi)時(shí)便放棄向地圖服務(wù)器發(fā)送請(qǐng)求,或者當(dāng)請(qǐng)求地圖瓦片的縮放級(jí)別超出了地圖數(shù)據(jù)源的縮放范圍時(shí),也終止請(qǐng)求向地圖服務(wù)器發(fā)送請(qǐng)求。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于:所述地圖SDK模塊設(shè)置有圖片的內(nèi)存緩存與磁盤緩存的雙緩存機(jī)制,以提高地圖的顯示速度。
5.根據(jù)權(quán)利要求1?4中任一項(xiàng)所述的方法,其特征在于:所述地圖服務(wù)器為用戶自定義數(shù)據(jù)源創(chuàng)建的OGC地圖服務(wù)器或網(wǎng)上提供OGC地圖瓦片數(shù)據(jù)的地圖服務(wù)器。
6.根據(jù)權(quán)利要求1?4中任一項(xiàng)所述的方法,其特征在于:所述地圖服務(wù)的類型包括麗S、TMS以及WTMS中一種或多種。
7.一種移動(dòng)終端,其特征在于:所述移動(dòng)終端設(shè)置有地圖SDK模塊以及應(yīng)用程序模塊,所述地圖SDK模塊用于提供獲取地圖數(shù)據(jù)源的接口以及供用戶操作的界面控件,所述應(yīng)用程序模塊用于調(diào)用地圖數(shù)據(jù)源的數(shù)據(jù),并用于實(shí)現(xiàn)地圖顯示、定位和/或搜索功能;所述移動(dòng)終端在利用所述地圖SDK模塊以及應(yīng)用程序模塊構(gòu)建專題地圖時(shí)采用如權(quán)利要求1?4中任一項(xiàng)所述的所述的方法來(lái)進(jìn)行構(gòu)建專題地圖。
8.根據(jù)權(quán)利要求7所述的移動(dòng)終端,其特征在于:所述移動(dòng)終端采用安卓操作系統(tǒng)。
【文檔編號(hào)】G06F17/30GK103744995SQ201410031435
【公開日】2014年4月23日 申請(qǐng)日期:2014年1月23日 優(yōu)先權(quán)日:2014年1月23日
【發(fā)明者】劉丹楓, 王永強(qiáng), 范海生, 任伏虎, 王晉年, 楊龍, 蕭暢成 申請(qǐng)人:廣東中科遙感技術(shù)有限公司