一种接入不同栅格地图服务的方法
【专利摘要】本发明提供一种接入不同栅格地图服务的方法,首先获取第三方栅格地图设置的参数,然后建立本系统中地图参数与第三方栅格地图参数的关联关系,将该关联关系建立关联算法并存储,在接入第三方栅格地图时,调用该关联算法,将该第三方栅格地图数据转换为基于当前系统的数据,从而实现了第三方栅格地图数据服务的接入,这样业务应用开发人员不用关心栅格地图的来源,只需要基于该栅格地图服务的功能进行二次开发,不需要基于多个第三方栅格地图服务的功能进行二次开发,可实现多个不同第三方栅格地图服务的接入,不需要进行重复的多次二次开发,使用和维护都简单方便,而且对于后续新出现的第三方栅格地图,也可以实现简单配置后进行接入,使得该系统的扩展性能和兼容性能更进一步提高。
【专利说明】—种接入不同栅格地图服务的方法
【技术领域】
[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日
【发明者】向新胜, 翟战强 申请人:北京易华录信息技术股份有限公司