SuperMap iClient如何使用WMTS地图服务
SuperMap iClient如何使用WMTS地图服务
什么是WMTS服务
WMTS,切片地图Web服务(Web Map Tile Service)当前版本是1.0.0。该服务符合 OGC(Open Geospatial Consortium,开放地理信息联盟)制定的 WMTS 实现规范。
WMTS 是 OGC 提出的缓存技术标准,即在服务器端缓存被切割成一定大小瓦片的地图,对客户端只提供这些预先定义好的单个瓦片的服务,将更多的数据处理操作如图层叠加等放在客户端,从而缓解 GIS 服务器端数据处理的压力,改善用户体验。
如何使用WMTS地图服务
本文将对iServer的WMTS服务, 天地图的WMTS服务, ArcGIS的WMTS服务进行剖析
1.针对iServer发布的WMTS服务
针对iServer Java 6R发布的WMTS,我们在使用iClinet对接时,需要注意以下几个参数,这里我用iClinet for JavaScript代码作为示范:
|
layer = new SuperMap.Layer.WMTS({name: "World", url: http://localhost:8090/iserver/services/map-world/wmts100 //WMTS服务地址 layer: "World", //图层名称 style: "default", //图层样式 matrixSet: "GlobalCRS84Scale_World", //发布的标识符矩阵集 format: "image/png", //图像的MIME类型,默认为 "image/png" resolutions:resolutions, //地图分辨率 opacity: 1, requestEncoding:"KVP"}); //请求编码 ,一般默认都是KVP |
综合上面红色字体的部分,我们可以得出,如果是iServer发布的地图,除地图url外,我们需要获取以上5个属性,那么究竟如何获取这5个属性呢?
获取方法:
1. 首先,启动iServer6R
2. 其次浏览器中输入: http://localhost:8090/iserver/services/map-world/wmts100 然后回车
3. 搜索Contents节点,我们可以获取所需4个属性
|
<Contents> <Layer> <ows:Title>World</ows:Title> <ows:Identifier>World</ows:Identifier> <ows:WGS84BoundingBox crs="urn:ogc:def:crs:OGC:2:84"> <ows:LowerCorner>-180.0 -90.0</ows:LowerCorner> <ows:UpperCorner>180.0 90.0</ows:UpperCorner> </ows:WGS84BoundingBox> <ows:BoundingBox crs="urn:ogc:def:crs:EPSG::3857"> <ows:LowerCorner>-2.0037508342789244E7 -2.0037508342789236E7</ows:LowerCorner> <ows:UpperCorner>2.0037508342789244E7 2.0037508342789244E7</ows:UpperCorner> </ows:BoundingBox> <Style isDefault="true"> <ows:Identifier>default</ows:Identifier> </Style> <Format>image/png</Format> <TileMatrixSetLink> <TileMatrixSet>Custom_World</TileMatrixSet> </TileMatrixSetLink> <TileMatrixSetLink> <TileMatrixSet>GlobalCRS84Scale_World</TileMatrixSet> </TileMatrixSetLink> <TileMatrixSetLink> <TileMatrixSet>GoogleMapsCompatible_World</TileMatrixSet> </TileMatrixSetLink> <ResourceURL format="image/png" resourceType="tile" template="http://localhost:8090/iserver/services/map-world/wmts100/ World/default/Custom_World/{TileMatrix}/{TileRow}/{TileCol}.png"/> <ResourceURL format="image/png" resourceType="tile" template="http://localhost:8090/iserver/services/map-world/wmts100/ World/default/GlobalCRS84Scale_World/{TileMatrix}/{TileRow}/{TileCol}.png"/> <ResourceURL format="image/png" resourceType="tile" template="http://localhost:8090/iserver/services/map-world/wmts100/ \World/default/GoogleMapsCompatible_World/{TileMatrix}/{TileRow}/{TileCol}.png"/> </Layer> |
从高亮的部分,可以得出以下对应情况
|
WMTS服务参数 |
iClinet for JavaScript代码 |
|
<ows:Title>World</ows:Title> |
layer: "World" |
|
<ows:Identifier>default</ows:Identifier> |
style: "default" |
|
<TileMatrixSet>GlobalCRS84Scale_World</TileMatrixSet> |
matrixSet: "GlobalCRS84Scale_World" |
|
format="image/png" |
format: "image/png" |
4. 最后在根据自己地图,计算当前图层的分辨率数组信息.如本范例分辨率数组是:
|
var resolutions = [1.25764139776733,0.628820698883665,0.251528279553466, 0.125764139776733,0.0628820698883665,0.0251528279553466, 0.0125764139776733,0.00628820698883665,0.00251528279553466, 0.00125764139776733,0.000628820698883665,0.000251528279553466, 0.000125764139776733,0.0000628820698883665,0.0000251528279553466, 0.0000125764139776733, 0.00000628820698883665,0.00000251528279553466, 0.00000125764139776733,0.000000628820698883665,0.000000251528279553466]; |
最终效果图:

2.针对天地图官网发布的WMTS服务
针对天地图官网发布的WMTS服务,我们在使用iClinet对接时,需要注意以下几个参数,这里我用iClinet for JavaScript代码作为示范:
1. 天地图官网公布的WMTS服务地址,请查看http://www.tianditu.cn/guide/index.html

2. 我选取http://t0.tianditu.com/vec_c/wmts为服务地址, 搜索Contents节点,获取4个重要信息:
|
<Contents> <Layer> <ows:Title>cva</ows:Title> <ows:Abstract>cva</ows:Abstract> <ows:Identifier>cva</ows:Identifier> <ows:WGS84BoundingBox> <ows:LowerCorner>-180.0 -90.0</ows:LowerCorner> <ows:UpperCorner>180.0 90.0</ows:UpperCorner> </ows:WGS84BoundingBox> <ows:BoundingBox> <ows:LowerCorner>-180.0 -90.0</ows:LowerCorner> <ows:UpperCorner>180.0 90.0</ows:UpperCorner> </ows:BoundingBox> <Style> <ows:Identifier>default</ows:Identifier> </Style> <Format>tiles</Format> <TileMatrixSetLink> <TileMatrixSet>c</TileMatrixSet> </TileMatrixSetLink> </Layer> <TileMatrixSet> <ows:Identifier>c</ows:Identifier> <ows:SupportedCRS>urn:ogc:def:crs:EPSG::4490</ows:SupportedCRS> |
从高亮的部分,可以得出以下对应情况
|
天地图官网WMTS服务参数 |
iClinet for JavaScript代码 |
|
<ows:Title>cva</ows:Title> |
layer: "vec" |
|
<ows:Identifier>default</ows:Identifier> |
style: "default" |
|
<TileMatrixSet>c</TileMatrixSet> |
matrixSet: "c" |
|
<Format>tiles</Format> |
format: "tiles" |
由于此天地图官网提供的WMTS服务,为全球经纬度范围(东西经±180度,南北纬±90度),则不需要设置原点和全副范围.
那么在iClinet for JavaScript代码中可以这样写:
|
layer = new SuperMap.Layer.WMTS({name: "vec", url: "http://t0.tianditu.com/vec_c/wmts", layer: "vec", style: "default", matrixSet: "c", format: "tiles", opacity: 1, requestEncoding:"KVP"}); |
最终效果图:

当然如果再叠加一幅中文标记wmts地图(该步骤同上述步骤相似,请开发人员自己尝试),最终效果:

3.针对ArcGIS发布的WMTS服务
针对ArcGIS发布的WMTS,我们在使用iClinet对接时,需要注意以下几个参数,这里我用iClinet for JavaScript代码作为示范:
1. 使用ArcGIS发布地图服务,切缓存 (此步骤略) 出图正常

2. 得到ArcGIS的WMTS服务地址, (http://localhost:6080/arcgis/rest/services/china/MapServer/wmts)搜索Contents节点,获取6个重要信息:
|
<Contents> <!-- Layer --> <Layer> <ows:Title>china</ows:Title> <ows:Identifier>china</ows:Identifier> <ows:BoundingBox crs="urn:ogc:def:crs:EPSG::0"> <ows:LowerCorner>73.62004852294922 3.8537260781998635</ows:LowerCorner> <ows:UpperCorner>134.76846313476562 53.553741455078125</ows:UpperCorner> </ows:BoundingBox> <ows:WGS84BoundingBox crs="urn:ogc:def:crs:OGC:2:84"> <ows:LowerCorner>73.62004852294922 3.8537260781998635</ows:LowerCorner> <ows:UpperCorner>134.76846313476562 53.553741455078125</ows:UpperCorner> </ows:WGS84BoundingBox> <Style isDefault="true"> <ows:Title>Default Style</ows:Title> <ows:Identifier>default</ows:Identifier> </Style> <Format>image/png</Format> <TileMatrixSetLink> <TileMatrixSet>default028mm</TileMatrixSet> </TileMatrixSetLink> <TileMatrixSetLink> <TileMatrixSet>nativeTileMatrixSet</TileMatrixSet> </TileMatrixSetLink> <ResourceURL format="image/png" resourceType="tile" template="http://localhost:6080/arcgis/rest/services/china/MapServer/WMTS /tile/1.0.0/china/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png"/> </Layer> 以及矩阵原点属性 <TileMatrix> <ows:Identifier>0</ows:Identifier> <ScaleDenominator>6.047619047619047E7</ScaleDenominator> <TopLeftCorner>-400.0 400.0</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight> <MatrixWidth>2</MatrixWidth> <MatrixHeight>3</MatrixHeight> |
从高亮的部分,可以得出以下对应情况
|
ArcGIS WMTS服务参数 |
iClinet for JavaScript代码 |
|
<ows:Title>china</ows:Title> |
layer: "china" |
|
<ows:Identifier>default</ows:Identifier> |
style: "default" |
|
<TileMatrixSet>default028mm</TileMatrixSet> |
matrixSet: "default028mm" |
|
<Format>image/png</Format> |
format: "image/png" |
|
<ows:LowerCorner>73.62004852294922 3.8537260781998635</ows:LowerCorner> <ows:UpperCorner>134.76846313476562 53.553741455078125</ows:UpperCorner> |
tileFullExtent: new SuperMap.Bounds( 73.62004852294922, 3.8537260781998635, 134.76846313476562, 53.553741455078125) |
|
<TopLeftCorner>-400.0 400.0</TopLeftCorner> |
tileOrigin:new SuperMap.LonLat(-400,400) |
3. 获取ArcGIS所切图层的分辨率,访问地图rest服务(http://localhost:6080/arcgis/rest/services/china/MapServer )我们可以获取resolutions
那么在iClinet for JavaScript中完整代码可以这样写
|
var resolutions = [0.15228550437351568,0.07614275218675784,0.03807137609337892,0.01903568804668946,0.00951784402334473]; //分辨率 var maxExtent = new SuperMap.Bounds(73.62004852294922,3.8537260781998635,134.76846313476562,53.553741455078125); //全副范围 layer = new SuperMap.Layer.WMTS({name: "china", url: "http://localhost:6080/arcgis/rest/services/china/MapServer/wmts" layer: "china", style: "default", matrixSet: "default028mm", format: "image/png", resolutions:resolutions, opacity: 1, tileFullExtent:maxExtent, //瓦片设置的最大范围 tileOrigin:new SuperMap.LonLat(-400,400), //瓦片矩阵左上角 requestEncoding:"KVP" }); |
最终效果图:

注意:在对接ArcGIS wmts服务时:
1. 需要设置瓦片设置的最大范围(全副范围)
2. 需要设置瓦片矩阵左上角 (如果不出图,有时候需要根据请求瓦片行列号,微调这个值)
3. 需要设置分辨率
(转贴请注明出处:http://www.cnblogs.com/zhangyongli2011/ 如发现有错,请留言 谢谢)
SuperMap iClient如何使用WMTS地图服务的更多相关文章
- SuperMap iClient 如何使用 WMTS 地图服务(转载)
原文链接: WMTS服务初步理解与读取 https://blog.csdn.net/supermapsupport/article/details/76806670 SuperMap iClient ...
- SuperMap iClient如何使用WMTS地图服务(转)
http://blog.sina.com.cn/s/blog_6259ebd50102v221.html 什么是WMTS服务 WMTS,切片地图Web服务(Web Map Tile Service)当 ...
- SuperMap iClient如何使用WMS地图服务
什么是WMS服务 WMS(Web Map Service,Web 地图服务)服务,该服务符合 OGC(Open Geospatial Consortium,开放地理信息联盟)制定的 WMS 实现规范. ...
- SuperMap iClient for JavaScript 新手入门
地理信息系统(英语:Geographic Information System,缩写:GIS)是一门综合性学科,结合地理学与地图学,已经广泛的应用在不同的领域,是用于输入.存储.查询.分析和显示地理数 ...
- SuperMap iClient 7C——网络客户端GIS开发平台 产品新特性
SuperMap iClient 7C是空间信息和服务的可视化交互开发平台,是SuperMap服务器系列产品的统一客户端.产品基于统一的架构体系,面向Web端和移动端提供了多种类型的SDK开发包,帮助 ...
- SuperMap iClient
SuperMap iClient 7C——网络客户端GIS开发平台 产品新特性 SuperMap iClient 7C是空间信息和服务的可视化交互开发平台,是SuperMap服务器系列产品的统一客 ...
- Skyline中加载WMTS地图
Skyline中默认是Bing地图,必应虽然免费无偏移,但在国内的影像质量并不是很好.不用担心,Skyline支持多种影像图层,包括WFS.WMS.WMTS地图服务.使用地图作为底图有两个好处: (1 ...
- 不偏移的天地图地图服务-SuperMap版
在<不偏移的天地图地图服务-ArcGIS版>中,提供了相应的服务地址:而SuperMap中,则是将纠偏的方法集成到程序中,只需要修改一个配置参数,则可以实现天地图的纠偏. 打开Web型数据 ...
- 常见地图服务(WMS、WFS、WCS、TMS、WMTS
1.网络地图服务(WMS) 网络地图服务(WMS)利用具有地理空间位置信息的数据制作地图.其中将地图定义为地理数据可视的表现.能够根据用户的请求返回相应的地图(包括PNG,GIF,JPEG等栅格形式或 ...
随机推荐
- 【UVA 11077】 Find the Permutations (置换+第一类斯特林数)
Find the Permutations Sorting is one of the most used operations in real life, where Computer Scienc ...
- Sd - JavaBase问题
1. Java有哪些基本数据类型 2. Java基本数据类型和引用类型的区别 3. Java的多态 4. Override和Overload的区别 5. Java内部类 6. 继承和组合的比较 7. ...
- 【UOJ #34】多项式乘法
http://uoj.ac/problem/34 看了好长时间的FFT和NTT啊qwq在原根那块磨蹭了好久_(:з」∠)_ 首先设答案多项式的长度拓展到2的幂次后为n,我们只要求出一个g(不是原根)满 ...
- 【BZOJ 4104】【THUSC 2015】解密运算
http://www.lydsy.com/JudgeOnline/problem.php?id=4104 网上题解满天飞,我也懒得写了 #include<cstdio> #include& ...
- [转] 浅谈ssh(struts,spring,hibernate三大框架)整合的意义及其精髓
hibernate工作原理 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6 ...
- ARM的存储器映射与存储器重映射
转:http://www.360doc.com/content/12/1006/00/1299815_239693009.shtml arm 处理器本身所产生的地址为虚拟地址,每一个arm芯片内都有存 ...
- 【maven】ecplise新建maven项目 报错Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin
在ecplise上新建maven项目 报错: Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resourc ...
- sso 自动化运维平台
单点登录SSO(Single Sign-On)是身份管理中的一部分.本文中作者开发了一个自动化运维平台中的统一认证接口,单点登录平台通过提供统一的认证平台,实现单点登录.因此,应用系统并不需要开发用户 ...
- 深入分析JavaWeb Item40 -- 文件上传和下载
在Web应用系统开发中,文件上传和下载功能是很经常使用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传.浏览器在上传的过程中是将文件以流的形式提交到server端的.假设 ...
- [转]黄聪:如何使用CodeSmith批量生成代码
本文转自:http://www.cnblogs.com/huangcong/archive/2010/06/14/1758201.html 在上一篇我们已经用PowerDesigner创建好了需要的测 ...