一種接入不同柵格地圖服務的方法
【專利摘要】本發明提供一種接入不同柵格地圖服務的方法,首先獲取第三方柵格地圖設置的參數,然后建立本系統中地圖參數與第三方柵格地圖參數的關聯關系,將該關聯關系建立關聯算法并存儲,在接入第三方柵格地圖時,調用該關聯算法,將該第三方柵格地圖數據轉換為基于當前系統的數據,從而實現了第三方柵格地圖數據服務的接入,這樣業務應用開發人員不用關心柵格地圖的來源,只需要基于該柵格地圖服務的功能進行二次開發,不需要基于多個第三方柵格地圖服務的功能進行二次開發,可實現多個不同第三方柵格地圖服務的接入,不需要進行重復的多次二次開發,使用和維護都簡單方便,而且對于后續新出現的第三方柵格地圖,也可以實現簡單配置后進行接入,使得該系統的擴展性能和兼容性能更進一步提高。
【專利說明】—種接入不同柵格地圖服務的方法
【技術領域】
[0001]本發明涉及一種網絡地圖服務方法,具體地說是一種接入不同類型的柵格地圖服務的系統及方法。
【背景技術】
[0002]隨著地理信息技術的發展,地理信息系統(GIS)發揮越來越大的作用,廣泛應用于定位、搜索等服務中,因此也出現了多種基于GIS的地圖服務。目前,很多GIS廠商都有柵格地圖服務,如百度地圖、谷歌地圖、高德地圖等等,這些地圖服務廠商也為需要地理信息系統的公司提供地圖應用程序接口,如ESRI公司、超圖公司、PGIS平臺、百度地圖、谷歌地圖、天地圖等都提供應用程序接口(簡稱API)。
[0003]如中國專利申請CN1971560A中,公開了一種柵格電子地圖源數據生成、組織及目標數據生成的方法,實現地圖與GPS位置信息的匹配并在服務器上完成,利用矢量地圖借助矢量地圖引擎生成多種規格的柵格地圖文件,形成柵格地圖源數據,柵格地圖文件使用數據庫或文件索引,存儲柵格地圖文件的坐標及索引名,通過消息機制傳遞目標柵格地圖規格要求及經緯度信息,地圖生成系統將從數據庫或文件中檢索,獲得柵格地圖源數據,并進行剪裁拼接生成目標柵格地圖并打包傳遞到目標應用。該方案中提供了一種構建柵格地圖的方法。目前的柵格地圖都是各個廠商自行研發的,因此其數據信息的配置方式、數據來源等均不相同。
[0004]由于目前市場上的各個柵格地圖產品的開發沒有統一的標準,當其他開發商在基于這些柵格地圖開發其他業務應用系統時,需要針對不同的柵格地圖的應用程序接口來單獨開發,不僅增大了開發成本,也增加了后期的維護和使用成本。
【發明內容】
[0005]為此,本發明所要解決的技術問題在于現有技術中的業務應用系統需要針對不同的柵格地圖單獨開發,從而提出一種可以接入多個不同柵格地圖服務的系統及方法。
[0006]為解決上述技術問題,本發明提供一種接入不同柵格地圖服務的方法,包括如下步驟:
獲取第三方柵格地圖的參數,所述參數包括切圖原點、每級分辨率、坐標系、投影方
式;
建立所述第三方柵格地圖的所述參數產生的行列號、地圖級別與本系統中配置的參數所產生的行列號、地圖級別之間的對應關聯關系,并根據該對應關聯關系建立關聯算法并存儲;
當調用第三方柵格地圖時,傳入行列號、地圖級別以及地圖名稱;
調用該第三方柵格地圖對應的所述關聯算法,將該第三方柵格地圖的信息轉換為其接入后對應本系統的信息。
[0007]所述接入不同柵格地圖服務的方法,將所述關聯算法存儲在配置文件中,并將配置文件的名稱命名為該地圖名稱。
[0008]所述接入不同柵格地圖服務的方法,所述調用該第三方柵格地圖對應的所述關聯算法的過程,包括根據地圖名稱讀取對應的配置文件,根據地圖級別讀取對應配置文件中的第三方柵格地圖對應的算法。
[0009]所述接入不同柵格地圖服務的方法,所述將該第三方柵格地圖的信息轉換為其接入后對應本系統的信息的過程,還包括根據地圖類型進行顯示的。
所述接入不同柵格地圖服務的方法,所述地圖類型包括:矢量地圖、影像地圖或2.5維地圖。
[0010]所述接入不同柵格地圖服務的方法,所述切圖原點為城市全圖時左上角或左下角的經緯度坐標、經緯度(0,O)或經緯度(-180,90)。
[0011]所述接入不同柵格地圖服務的方法,所述坐標系為WGS84、西安80、BJZ54、CGCS2000。
[0012]所述接入不同柵格地圖服務的方法,所述投影方式為經緯度直投、Web墨卡托、蘭伯特、高斯克呂格。
[0013]所述接入不同柵格地圖服務的方法,本系統中配置的參數為:經緯度(-180,90)坐標為切圖原點、O級分辨率為2,投影方式為經緯度直投,坐標系為WGS84。
[0014]所述接入不同柵格地圖服務的方法,所述第三方柵格地圖為PGIS柵格地圖、OGCWMS地圖、天地圖、MyGIS地圖、ArcGIS Server地圖以及其他自行開發的柵格地圖。
[0015]本發明的上述技術方案相比現有技術具有以下優點,
(I)本發明提供一種接入不同柵格地圖服務的方法,首先獲取第三方柵格地圖設置的參數,然后建立本系統中地圖參數與第三方柵格地圖參數的關聯關系,將該關聯關系建立關聯算法并存儲,在接入第三方柵格地圖時,調用該關聯算法,將該第三方柵格地圖數據轉換為基于當前系統的數據,從而實現了第三方柵格地圖數據服務的接入,這樣業務應用開發人員不用關心柵格地圖的來源,只需要基于該柵格地圖服務的功能進行二次開發,不需要基于多個第三方柵格地圖服務的功能進行二次開發,可實現多個不同第三方柵格地圖服務的接入,不需要進行重復的多次二次開發,使用和維護都簡單方便,而且對于后續新出現的第三方柵格地圖,也可以實現簡單配置后進行接入,使得該系統的擴展性能和兼容性能更進一步提高。該方案可以將所有的桌面應用、Web應用、移動應用都基于該柵格地圖服務實現,實現了三端一套圖的效果,此外,該方案的業務開發者不需要關心柵格地圖數據的來源以及對接方式,降低了開發者對GIS的技術要求。
[0016](2)本發明所述的接入不同柵格地圖服務的方法,將所述關聯算法存儲在配置文件中,并將配置文件的名稱命名為該地圖名稱,通過這種方式使得后續調用時根據地圖名稱便可以方便的選擇,在支持多個第三方柵格地圖時,建立、存儲、調用時都方便。
[0017](3)本發明所述的接入不同柵格地圖服務的方法,切圖原點、每級分辨率、坐標系、投影方式根據不同的柵格地圖類型及內部數據配置,選擇對應的恰當的方式,提高了接入的柵格地圖的數據轉化后的準確性。
【專利附圖】
【附圖說明】
[0018]為了使本發明的內容更容易被清楚的理解,下面根據本發明的具體實施例并結合附圖,對本發明作進一步詳細的說明,其中
圖1是本發明所述接入不同柵格地圖服務的方法的一個實施例的流程圖;
圖2是本發明所述接入不同柵格地圖服務的方法的另一個實施例的調用第三方柵格地圖的流程圖;
圖3是本發明所述接入不同柵格地圖服務的方法的接入框圖。
【具體實施方式】
[0019]實施例1:
本實施例提供一種接入不同柵格地圖服務的方法,基于切圖原點、分辨率、坐標系、投影等技術手段,通過在第三方柵格地圖服務中增加適配算法,接入第三方柵格地圖服務,方便擴充業務應用系統的柵格數據來源,解決業務應用系統基于不同第三方柵格地圖的應用程序接口重復開發的問題,減少了業務應用系統的開發工作量、開發費用以及維護費用。
[0020]本實施例中的接入不同柵格地圖服務的方法,主要分為根據第三方柵格地圖建立適配算法和接入第三方柵格地圖后的調用兩個過程。流程圖如圖1所示。
[0021](I)首先,為接入第三方柵格地圖服務,開發者需要了解第三方柵格地圖服務的切圖規則或加載原理,然后獲取第三方柵格地圖的配置參數,這些參數包括切圖原點、每級分辨率、坐標系以及投影方式等,具體如下:
①.切圖的原點:一般切圖原點為城市全圖時左上角或左下角的經緯度坐標,也有以經緯度(0,0 )坐標為原點或經緯度(-180,90 )坐標為原點。不管用什么作為切圖的原點,開發人員都需要和第三方柵格地圖服務商溝通或根據柵格地圖服務的配置文件來獲取切圖的原點。
[0022]②.每級分辨率:地圖級別是指該地圖放大或縮小時對應的級別,一般地圖可有多個級別,如從O級到9級,地圖顯示的區域逐漸縮小,顯示的目標逐漸放大。一般相鄰兩級分辨率都為2的整數倍,只需要清楚某級分辨率就能知道其他級的分辨率。不管某級分辨率是什么,開發人員都需要和第三方柵格地圖服務商溝通或根據柵格地圖服務的配置文件來獲取每級分辨率。
[0023]③.柵格地圖的坐標系:坐標系一般為WGS84、西安80、BJZ54 (北京54坐標系)、CGCS2000 (國家大地坐標系2000)等,開發人員需要和第三方柵格地圖服務商溝通或根據柵格地圖服務的配置文件來獲取對方采用的是什么坐標系。
[0024]④.柵格地圖的投影方式:柵格地圖的投影方式有多種,如經緯度直投、Web墨卡托、蘭伯特、高斯克呂格等。開發人員也需要和第三方柵格地圖服務商溝通或根據柵格地圖服務的配置文件來獲取對方采用的是什么投影方式。
[0025]通過第三方柵格地圖的提供商或者根據其配置文件,獲得了該第三方柵格地圖的上述參數。
[0026](2)找出第三方柵格地圖服務因切圖的原點、分辨率、坐標系、投影的不同產生的行列號、級別和本系統中的相應參數所產生的行列號、級別有什么對應關聯關系,再根據對應關聯關系編寫不同的適配關聯算法。
[0027]如本系統中為了實現全國一張圖,采用的配置參數為:經緯度(-180,90)坐標為切圖原點,O級分辨率為2,采用經緯度直投,坐標系為WGS84。[0028]于是,就需要找出第三方柵格地圖服務因切圖的原點、分辨率、坐標系、投影的不同產生的行列號、級別和為了實現全國一張圖,采用經緯度(-180,90 )坐標為切圖原點,O級分辨率為2,采用經緯度直投,坐標系為WGS84產生的行列號、級別有什么對應關系,再根據對應關系編寫不同的適配算法。
[0029]將適配算法需要的參數存放在配置文件中,方便快速接入第三方柵格地圖服務,可將配置文件的名稱命名為該地圖名稱。
[0030](3)當調用第三方柵格地圖時,傳入行列號、地圖級別以及地圖名稱。
[0031](4)根據傳入的地圖名稱,讀取對應的配置文件,根據地圖級別讀取對應配置文件中的第三方柵格地圖對應的算法,于是可以調用該第三方柵格地圖對應的所述關聯算法,將該第三方柵格地圖的信息轉換為其接入后對應本系統的信息。這樣,地圖引擎不需要考慮柵格地圖來源,只需傳入行列號、地圖等級、地圖名稱就可以獲取一張256*256的小圖片。在顯示時,根據地圖的類型進行顯示,如顯示為矢量地圖或影像地圖或2.5維地圖,矢量地圖如一般的百度地圖等矢量圖,影響地圖為通過衛星的航拍圖,地圖類型根據第三方柵格地圖中的類型設置來選擇或根據其相應的配置文件來獲得。接入第三方柵格地圖的流程圖見圖2.本實施例所述的接入不同柵格地圖服務的方法,將自主研發的地圖引擎傳入的行列號、地圖等級轉換成第三方柵格地圖服務能識別的行列號、地圖等級,從而適配第三方柵格地圖服務而獲取一張256*256的小圖片。目前已經接入PGIS柵格地圖服務、OGC WMS服務、天地圖服務、MyGIS服務、ArcGIS Server的服務,對于其他自定義的柵格地圖也可以實現接入,接入框圖見圖3,通過接入多種不同類型的柵格地圖服務,可提供桌面GIS引擎、WebGIS引擎、移動GIS引擎調用等業務應用。
[0032]實施例2:
本實施例提供一種接入PGIS柵格地圖服務的方法。
[0033]PGIS平臺是公安部免費下發給各省各市的一套地理信息系統。PGIS柵格地圖服務以Servlet方式對外提供256*256的圖片且接口參數公開。公安部希望公安系統各單位的業務系統都基于PGIS平臺開發,但由于公司的業務系統不是基于PGIS平臺開發而是基于ArcGIS開發。如果全基于PGIS平臺開發,工作量特別大成本特別高且受PGIS平臺制約,業務系統沒法推廣到其他行業。如果有些地方沒部署PGIS平臺,那么需要維護之前的業務系統,也就是一個公司需要維護兩套以上的業務系統。
[0034]為了業務系統不受PGIS平臺的制約,開發人員在底層接入PGIS柵格地圖服務的瓦片數據而不是基于PGIS平臺功能作二次開發。
[0035]本實施例中接入PGIS柵格地圖服務的方法如下:
1.根據比例尺、分辨率的換算公式,可知PGIS柵格地圖服務O級的分辨率約為2。分辨率=比例尺*像素點/(米轉度),0級比例尺為787996801.319121,I像素=0.0254/90米,I 度約等于 111194.872221777 米。
[0036]2.根據PGIS柵格地圖切圖工具,可知PGIS柵格地圖采用的是WGS84坐標系,投影為經緯度直投。
[0037]3.通過左上角-180,90度為原點,切某城市的矢量數據,將某點坐標的行列號及等級請求PGIS柵格地圖服務的瓦片,發現這種方式切出的圖片和PGIS柵格地圖服務不是同一個瓦片塊,且相差比較大。經過不同級別的比較,發現在9級時,X軸相差180度,y軸相差90度,每增加一個等級,值就增大一倍,因此可以確定,PGIS是以左下角0,O為原點進行切圖。
[0038]4.清楚PGIS的O級分辨率為2,切圖原點為經緯度(0,0),地圖等級也是升序,因此,只需寫一個行列號轉換成PGIS行列號的算法;
Int EHLCol, EHLRow, EHLZoom, PGISCoI, PGISRow, PGISZoom, tmpValue;
tmpValue = EHLZoom—9;
double dScale = Math.pow(2, tmpValue);
tmpValue = (int)Math.rint(180 木 dScale);
PGISCoI= EHLCol- tmpValue;
tmpValue = (int)Math, rint(90 木 dScale);
PGISRow = tmpValue - EHLRow0
[0039] 5.由于不同城市PGIS柵格地圖服務的地址都不相同,但切圖原點、坐標系、投影、每級分辨率相同,因此,為了對接的方便性,開發人員提供一個只配置柵格地圖服務地址的界面,內容格式如下:
http://IP:端口 /PGIS_S_TileMapServer/Maps/default/EzMap。
[0040]6.將某級行列號替換PGIS柵格地圖服務中某級的行列號。如18級default服務的地址如下:
http://IP:端口 /PGIS_S_TileMapServer/Maps/default/EzMap?
Service=getlmage& Type=RGB&CoI=MC0L&Row=MR0W&Zoom=18& V=0.3
完成一張256*256的圖片獲取。
[0041]實施例3:
本實施例提供一種接入OGC WMS柵格地圖服務的方法。
[0042]WMS柵格地圖服務是通過地圖范圍來獲取地圖內容,為了不讓三個地圖引擎(桌面引擎、Web引擎、移動引擎)分辨編寫調用麗S柵格地圖服務的功能,我們在柵格地圖服務端和WMS對接,三個地圖引擎仍按照行列號、等級、地圖名稱的方式獲取小圖片。
[0043]接入OCG WMS柵格地圖服務的方法如下:
1.根據WMS的GetCapabilities方法獲取圖層的基本信息,包括坐標系、投影、圖層名稱等。
[0044]2.按照現有的切圖規則向麗S服務請求圖層,也就是將行列號轉換成相應的范圍;
double resouletion=2D; //對應第一級的分辯率 int EHLZoom, EHLRow, EHLCol; int tilewidth=256; double p0riginx=-180D; double p0riginy=90D;
double dScale = (resouletion / Math.pow(2.0Dj this.EHLZoom))^tilewidth;
double dMinX = Math, abs(EHLCol * dScale-Math.abs());
double dMaxX = Math, abs((EHLCol + I) * dScale-Math.abs (pOriginx));double dMinY = Math, abs(EHLRow * dScale-Math.abs(pOriginy));
double dMaxY = Math, abs((EHLRow + I) * dScale-Math.abs (pOriginy));
if (dMinY>dMaxY){
dScale=dMinY;
dMinY=dMaxY;
dMaxY=dScale;
}
if (dMinX)dMaxX){
dScale=dMinX;
dMinX=dMaxX;
dMaxX=dScale;
}
String strMBOX = dMinX + "," + dMinY + "," + dMaxX + "," + dMaxY0
[0045]3.由于不同城市的WMS服務的地址都不相同,但切圖原點、每級分辨率、坐標系、投影完成可以和我們的切圖規則一樣,因此,為了對接的方便性,開發人員提供一個只配置WMS服務地址的界面,內容格式如下:
http://IP:端口 /geoserver/wms?LAYERS=bygis%3AAdm_Area&
STYLES=&BGC0L0R=0x000000&TRANSPARENT=TRUE&F0RMAT=image%2Fpng&TILED=true&SERVICE=WMS&VERS10N=1.1.l&REQUEST=GetMap&EXCEPT10NS=application%2Fvnd.0gc.se—inimage&SRS=EPSG%3A4326&BB0X=MB0X&WIDTH=MWIDTH&HEIGHT=MHEIGHT0
[0046]4.用轉換后的strMBOX替換上地址中的ΜΒ0Χ,圖片寬度、高度統一改為256。
[0047]5.完成一張256*256的圖片獲取。
[0048]在上述實施例中提供了接入不同柵格地圖服務的方法,首先獲取第三方柵格地圖設置的參數,然后建立本系統中地圖參數與第三方柵格地圖參數的關聯關系,將該關聯關系建立關聯算法并存儲,在接入第三方柵格地圖時,調用該關聯算法,將該第三方柵格地圖數據轉換為基于當前系統的數據,從而實現了第三方柵格地圖數據服務的接入,這樣業務應用開發人員不用關心柵格地圖的來源,只需要基于該柵格地圖服務的功能進行二次開發,不需要基于多個第三方柵格地圖服務的功能進行二次開發,可實現多個不同第三方柵 格地圖服務的接入,不需要進行重復的多次二次開發,使用和維護都簡單方便,而且對于后續新出現的第三方柵格地圖,也可以實現簡單配置后進行接入,使得該系統的擴展性能和兼容性能更進一步提高。該方案可以將所有的桌面應用、web應用、移動應用都基于該柵格地圖服務實現,實現了三端一套圖的效果,此外,該方案的業務開發者不需要關心柵格地圖數據的來源以及對接方式,降低了開發者對GIS的技術要求。
[0049]顯然,上述實施例僅僅是為清楚地說明所作的舉例,而并非對實施方式的限定。對于所屬領域的普通技術人員來說,在上述說明的基礎上還可以做出其它不同形式的變化或變動。這里無需也無法對所有的實施方式予以窮舉。而由此所引伸出的顯而易見的變化或變動仍處于本發明創造的保護范圍之中。
【權利要求】
1.一種接入不同柵格地圖服務的方法,其特征在于,包括如下步驟: 獲取第三方柵格地圖的參數,所述參數包括切圖原點、每級分辨率、坐標系、投影方式; 建立所述第三方柵格地圖的所述參數產生的行列號、地圖級別與本系統中配置的參數所產生的行列號、地圖級別之間的對應關聯關系,并根據該對應關聯關系建立關聯算法并存儲; 當調用第三方柵格地圖時,傳入行列號、地圖級別以及地圖名稱; 調用該第三方柵格地圖對應的所述關聯算法,將該第三方柵格地圖的信息轉換為其接入后對應本系統的信息。
2.根據權利要求1所述的方法,其特征在于:將所述關聯算法存儲在配置文件中,并將配置文件的名稱命名為該地圖名稱。
3.根據權利要求2所述的方法,其特征在于:所述調用該第三方柵格地圖對應的所述關聯算法的過程,包括根據地圖名稱讀取對應的配置文件,根據地圖級別讀取對應配置文件中的第三方柵格地圖對應的算法。
4.根據權利要求1或2或3所述的方法,其特征在于:所述將該第三方柵格地圖的信息轉換為其接入后對應本系統的信息的過程,還包括根據地圖類型進行顯示的過程。
5.根據權利要求4所述的方法,其特征在于:所述地圖類型包括:矢量地圖、影像地圖或2.5維地圖。
6.根據權利要求1-5任一所述的方法,其特征在于:所述切圖原點為城市全圖時左上角或左下角的經緯度坐標、經緯度(O,O)或經緯度(-180,90)。
7.根據權利要求1-6中任一所述的方法,其特征在于:所述坐標系為WGS84、西安80、BJZ54、CGCS2000。
8.根據權利要求1-7中任一所述的方法,其特征在于:所述投影方式為經緯度直投、Web墨卡托、蘭伯特、高斯克呂格。
9.根據權利要求1-8中任一所述的方法,其特征在于:本系統中配置的參數為:經緯度(-180,90)坐標為切圖原點、O級分辨率為2,投影方式為經緯度直投,坐標系為WGS84。
10.根據權利要求1-9中任一所述的方法,其特征在于:所述第三方柵格地圖為PGIS柵格地圖、OGCWMS地圖、天地圖、MyGIS地圖、ArcGIS Server地圖以及其他自行開發的柵格地圖。
【文檔編號】G06F17/30GK103699641SQ201310723701
【公開日】2014年4月2日 申請日期:2013年12月24日 優先權日:2013年12月24日
【發明者】向新勝, 翟戰強 申請人:北京易華錄信息技術股份有限公司