WebGIS中经过行列号来换算出多种瓦片的URL

作品版权由小编李晓晖和微博共有,若转发请于显明处标明出处:http://www.cnblogs.com/naaoveGIS/

1.前言

那篇小说里,我主要针对OGC标准中的WMS、WMTS以及ArcGIS的在线地图服务来开展剖析。

写以前,我先来给我们提一下OGC是怎么。OGC的全名是Open GIS
Consortium,普通话名是开放地理空间新闻联盟,它是一个黑白盈利、志愿的国际标准化社团。在空间数据互操作领域,基于公共接口访问情势的互操作方法是一种基本的操作方法。通过国际标准化协会(ISO/TC211)或技术联盟(如OGC)制定空间数据互操作的接口规范,GIS软件商开发遵守这一接口规范的空间数据的读写函数,从而得以兑现异构空间数据库的互操作(来自百度健全)。

当下OGC制定的标准有:WMS(地图服务)、WMTS(地图瓦片服务)、WFS(要素服务)、WCS(栅格服务)。在底下我介绍的地图请求格局皆是RESTFUL下的伸手形式。

2.WMS服务的URL

WMS服务可以提供以下二种服务:

GetCapabilities重返服务级元数据。

 88bifa必发娱乐 1

GetMap重返一个地图影象。

 88bifa必发娱乐 2

GetFeatureinfo再次回到突显在地图上的一点特殊要素的消息等。

 88bifa必发娱乐 3

2.1例子

咱俩来看一下WMS服务请求地图时的URL例子:http://172.18.0.154:7001/ServiceRight/proxy/f446aabb04a59af336901290d615e16b/xzcg/WMS/XZ500DLG\_BZWGS84?LAYERS=XZ500DLG\_BZWGS84&FORMAT=image/gif&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=EPSG:4326

&WIDTH=256&HEIGHT=256&bbox=117.21879147492814,34.240704396544345,117.22000975886715,34.24192268048341。

 88bifa必发娱乐 4

 88bifa必发娱乐 5

着眼这些URL,很多参数在实际上利用中可以依照提供的劳务而一定,比如FORMAT、LAYERS、REQUEST、SRS、STYLES、VERSION、WIDTH、HEIHT参数。而真正须求大家实际去不停换算的便是BBOX了。

2.2原理

WMS请求是一种可以动态出图的央求,原则上它可以突显原始图像在随意比例尺下的地形图,它不像瓦片服务,只好突显切图时所设定好的比例尺下的的地图。在我们选拔二次开发包时,比如用esri提供的开支包时,其中只必要大家设置要求出示的级别数,而不必要我们设置每个级别所对应的比例尺,便是因为WMS是一个动态出图服务。在二次开发中,直接运用提供的WMS类是分外不难的,只需求提供浮现的限制和内需出示的级别数即可,此类的中间会自动的分开每一个级其他比例尺,而WMS是动态出图的,所以完全可以支撑那种形式。

2.3 注意

只是,实际中,有的服务商提供的WMS服务却并不是这么的,他们很有可能会在某个比例尺很小的地点做出限定,让大家只可以以某多少个固定的百分比尺去访问取得瓦片,别的比例尺均不得以。以前替其余组同事处理过的一个接纳基于FlexViewer框架下的WMS类加载地图时,在一定的某多少个级别上不出示地图,便是那么些原因了。而解决这么些题材的格局是再度扩充这一个类,使增添的WMSEX类可以由此设定好的各类级其余比例尺来换算出相应的Bbox,那里大家后边得到的队列号的算法就到底有用途了。

minX=resolution*tileSize*col;

minY=resolution*tileSize*row;

maxX=resolution*tileSize*(col+1);

maxY=resolution*tileSize*(row +1);

Bbox=“minX,minY,maxX,maxY”;

3.WMTS服务

WMTS服务的齐全是Web Map Tile
Service,故名思议,不一致于往日的WMS的动态出图,WMTS服务是基于瓦片思想的。WMTS一样协助提供一定的业内服务,比如:

GetCapabilities(获取服务的元音信,在那个元新闻中我们可以看来切图的详尽布署)。

 88bifa必发娱乐 6

GetTile(获取切片)。

88bifa必发娱乐,GetFeatureInfo(可选,获取点选的因素新闻)。

可以看来这一个操作和WMS的操作格外的均等。

3.1例子

我们再来看一下WMTS下请求地图瓦片的URL例子,这里自己以天地图中的URL为范例:http://srv.zjditu.cn/ZJEMAP_2D/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&LAYER=ZJEMAP&FORMAT=image/png&TILEMATRIXSET=TileMatrixSet0&TILEMATRIX=17&STYLE=default&TILEROW=21747&TILECOL=109282

 88bifa必发娱乐 7

 88bifa必发娱乐 8

考察这几个URL所包括的参数,在得到瓦片前大家是足以将FORMAT、LAYER、REQUEST、SERVICE、STYLE、VERSION依据须要而写定的,在持续转变的是TILEMATRIX、TILEROW、TILECOL。

3.2原理

WMTS服务和大家事先反复研讨的瓦片思想是顺应的,寓目参数也能来看,TILEMATRIX、TILEROW、TILECOL其实就是Level、row、col。于是WMTS服务下的瓦片请求的URL也变顺理成章的可以拼出来了:固定格式URL+“&TILEMATRIX=”+level+“&TILEROW=”+row+“&TILECOL=”+col。

4.周边地图服务器发表的地图中的URL——以AGS服务为例

AGS中,在对发表的服务开展了切图后,地图的请求URL成了一种固定的格式。如:http://172.29.0.74:8399/arcgis/rest/services/HFTile/MapServer/tile/2/957/834

 88bifa必发娱乐 9

 可想而知,在tile后的便是Level、row、col。所以AGS下的URL写法便是:restMap瑟维斯地址/Level/row/col。

5.提多少个难点

问题一:

一个地图需求前多少个级别地图是发源A服务,它的服务地点是AURL。中间几个级别地图来源于B服务,它的劳动地点是BURL,前面几各自地图是来自C服务,它的服务地点是CURL。那几个时候大家该如何让系统可以在种种级别正常的出图呢?

问题二:

一个地图须要同时突显地形图和注记图层,且地形图服务源于A服务,注记图层来源于B服务。怎么样能正常的加载多少个服务,并且让注记图层正常的叠加在地形图上呢?

问题三:

或者一个地形图须求同时出示地形图和注记图层,不过此时地势图服务是WMTS服务,而注记图层是WMS服务。怎么样将三种不一致服务的瓦片获取后叠加呢?

标题本身就只提那多个呢,那种近乎的难点尤其越发多,可是自己想只要大家清楚了种种服务的URL获得原理,再加上一点点投机解决难点的笔触,应该都简单化解的。在未来的栅格图层(瓦片图层)设计的章节里,我会付给一个我们缓解此类题材的办法,该方法能很通用的缓解这一种类难点。

6.总结

讲到那里时,整个体系中,大家早就讲了行列号是怎么、怎样获取行列号、通过行列号获得瓦片URL。可以说大家明日离开怎么着在前端彰显出栅格图像,是齐全只欠北风了。那么下一章节里,我将给大家借来这一个南风。下一节内容是:瓦片在前端拼接呈现的规律。欢迎大家频频关心。

 

并不是只有在开着团结的车时才是自由,只要大家双腿还在,都能远行。

                         —–欢迎转发,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                          
倘使您觉得本文确实协理了你,可以微信扫一扫,进行小额的打赏和鞭策,谢谢
^_^

                                    88bifa必发娱乐 10

相关文章