http://blog.sina.com.cn/s/blog_6259ebd50102v221.html

什么是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个属性

World

World

-180.0 -90.0

180.0 90.0

-2.0037508342789244E7 -2.0037508342789236E7

2.0037508342789244E7 2.0037508342789244E7

default

image/png

Custom_World

GlobalCRS84Scale_World

GoogleMapsCompatible_World

resourceType="tile" template="http://localhost:8090/iserver/services/map-world/wmts100/

World/default/Custom_World/{TileMatrix}/{TileRow}/{TileCol}.png"/>

resourceType="tile" template="http://localhost:8090/iserver/services/map-world/wmts100/

World/default/GlobalCRS84Scale_World/{TileMatrix}/{TileRow}/{TileCol}.png"/>

resourceType="tile" template="http://localhost:8090/iserver/services/map-world/wmts100/

\World/default/GoogleMapsCompatible_World/{TileMatrix}/{TileRow}/{TileCol}.png"/>

从高亮的部分,可以得出以下对应情况

WMTS服务参数

iClinet for JavaScript代码

World

layer: "World"

default

style: "default"

GlobalCRS84Scale_World

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个重要信息:

cva

cva

cva

-180.0 -90.0

180.0 90.0

-180.0 -90.0

180.0 90.0

default

tiles

c

c

urn:ogc:def:crs:EPSG::4490

  

从高亮的部分,可以得出以下对应情况

天地图官网WMTS服务参数

iClinet for JavaScript代码

cva

layer: "vec"

default

style: "default"

c

matrixSet: "c"

tiles

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个重要信息:

china

china

73.62004852294922 3.8537260781998635

134.76846313476562 53.553741455078125

73.62004852294922 3.8537260781998635

134.76846313476562 53.553741455078125

Default Style

default

image/png

default028mm

nativeTileMatrixSet

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"/>

以及矩阵原点属性

0

6.047619047619047E7

-400.0 400.0

256

256

2

3

  从高亮的部分,可以得出以下对应情况

ArcGIS WMTS服务参数

iClinet for JavaScript代码

china

layer: "china"

default

style: "default"

default028mm

matrixSet: "default028mm"

image/png

format: "image/png"

73.62004852294922 3.8537260781998635

134.76846313476562 53.553741455078125

tileFullExtent: new SuperMap.Bounds(

73.62004852294922,

3.8537260781998635,

134.76846313476562,

53.553741455078125)

-400.0 400.0

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地图服务(转)的更多相关文章

  1. SuperMap iClient 如何使用 WMTS 地图服务(转载)

    原文链接: WMTS服务初步理解与读取 https://blog.csdn.net/supermapsupport/article/details/76806670 SuperMap iClient ...

  2. SuperMap iClient如何使用WMTS地图服务

    SuperMap iClient如何使用WMTS地图服务 什么是WMTS服务 WMTS,切片地图Web服务(Web Map Tile Service)当前版本是1.0.0.该服务符合 OGC(Open ...

  3. SuperMap iClient如何使用WMS地图服务

    什么是WMS服务 WMS(Web Map Service,Web 地图服务)服务,该服务符合 OGC(Open Geospatial Consortium,开放地理信息联盟)制定的 WMS 实现规范. ...

  4. SuperMap iClient for JavaScript 新手入门

    地理信息系统(英语:Geographic Information System,缩写:GIS)是一门综合性学科,结合地理学与地图学,已经广泛的应用在不同的领域,是用于输入.存储.查询.分析和显示地理数 ...

  5. SuperMap iClient 7C——网络客户端GIS开发平台 产品新特性

    SuperMap iClient 7C是空间信息和服务的可视化交互开发平台,是SuperMap服务器系列产品的统一客户端.产品基于统一的架构体系,面向Web端和移动端提供了多种类型的SDK开发包,帮助 ...

  6. SuperMap iClient

    SuperMap iClient 7C——网络客户端GIS开发平台 产品新特性   SuperMap iClient 7C是空间信息和服务的可视化交互开发平台,是SuperMap服务器系列产品的统一客 ...

  7. Skyline中加载WMTS地图

    Skyline中默认是Bing地图,必应虽然免费无偏移,但在国内的影像质量并不是很好.不用担心,Skyline支持多种影像图层,包括WFS.WMS.WMTS地图服务.使用地图作为底图有两个好处: (1 ...

  8. 不偏移的天地图地图服务-SuperMap版

    在<不偏移的天地图地图服务-ArcGIS版>中,提供了相应的服务地址:而SuperMap中,则是将纠偏的方法集成到程序中,只需要修改一个配置参数,则可以实现天地图的纠偏. 打开Web型数据 ...

  9. 常见地图服务(WMS、WFS、WCS、TMS、WMTS

    1.网络地图服务(WMS) 网络地图服务(WMS)利用具有地理空间位置信息的数据制作地图.其中将地图定义为地理数据可视的表现.能够根据用户的请求返回相应的地图(包括PNG,GIF,JPEG等栅格形式或 ...

随机推荐

  1. 快速配置vim+ctags+taglist

    实验平台:centos 7 1.安装vim编辑器 点击(此处)折叠或打开 $sudo yum install vim 并编辑配置文件.vimrc文件,放在主目录下/home/developer 参考配 ...

  2. jQuery文档处理(增加与删除文档)

    1.追加内容

  3. (未解决)WIN8下使用POWERSHELL安装python easy_install无法成功

    按照https://pypi.python.org/pypi/setuptools#windows-8-powershell介绍的方法, 安装未成功.安装似乎没有启动, 也未安装成功. Windows ...

  4. 和菜鸟一起学linux之V4L2摄像头应用流程【转】

    转自:http://blog.csdn.net/eastmoon502136/article/details/8190262/ 上篇文章,知道了,C代码编译后存放在内存中的位置,那么C代码的整个编译过 ...

  5. [Oracle] oracle统计信息

    Oracle统计信息 Oracle数据库里的统计信息可以分为6种类型: 表的统计信息 索引的统计信息 列的统计信息 系统统计信息 数据字典统计信息 内部对象统计信息 图 1: Oracle统计信息 基 ...

  6. python 操作数据库1--连接、执行sql语句

    #!/usr/bin/env python # -*- coding:utf-8 -*- # @Time : 2017/11/20 16:03 # @Author : lijunjiang # @Fi ...

  7. Ubuntu配置网络遇到的一些问题

    Ubuntu配置网络遇到的一些问题 在配置Ubuntu网络时,曾遇到了一些问题.查找了一些博客,所幸都解决了.记录一下,以便日后查阅. 设置DNS sudo vim /etc/resolv.conf ...

  8. 为什么32位系统最大支持4G内存??我自己悟出来了 终于 。。。。。

    今天突然开窍了,想通了..... 以下是我的抽象想法: 32位系统 这个 多少位 指的是 硬件的 一次性发送过来的位数,一个字节 等于8位,内存的一个存储单元就是一个字节,即8位. 也可以这样来想这个 ...

  9. python爬虫beautifulsoup4系列2【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/beautifulsoup4/ 前言 本篇详细介绍beautifulsoup4的功能,从 ...

  10. JAVA SERVLET上传文件的样码

    import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...