我们在做项目时,经常需要与天地图对接,对接形式分为2种:
1. 将公网天地图用作项目底图,在JavaScript客户端加载显示;
2. 将自己发布的WMTS地图服务给别人用,同时需要自己的服务能和天地图公网服务无缝对接。
现分为就这两种情况说下具体操作过程

一、对接天地图

与通常的wmts服务一样我们需要获取能力文档中的几个参数
如,天地图提供的全球矢量地图服务http://t0.tianditu.com/vec_c/wmts(获取能力文档需要在地址后加上?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetCapabilities)
在Contents节点中获取信息

通常获取
<ows:Title></ows:Title>,<ows:BoundingBox></ows:BoundingBox>,<Style><ows:Identifier></ows:Identifier></Style>,<Format></Format>,<TileMatrixSet></TileMatrixSet>
这些值,写入iClient for JavaScript代码中:

WMTSLayer = new SuperMap.Layer.WMTS({
name: "vec", //自定义图层名称
url: "http://t0.tianditu.com/vec_c/wmts", //wmts服务地址
layer: "vec", //服务中的图层名称
style: "default", //风格描述
matrixSet: "c", //标识符矩阵集
format: "tiles", //瓦片格式
requestEncoding: "KVP",
tileOrigin: new SuperMap.LonLat(-180, 90), //切图原点,天地图标准都是(-180,,90)
tileSize: new SuperMap.Size(256,256) //瓦片大小
});
map.addLayers([WMTSLayer]); //添加图层到地图中
map.setCenter(new SuperMap.LonLat(0,0), 1); //设置底图中心点和缩放级别

效果如下:

二、天地图叠加

在项目开发中,很多时候我们需要将业务图层与天地图无缝对接,如果我们做的是市县一级天地图,需要与国家或省级天地图一起叠加显示,就需要按照天地图的标准来发布我们自己的地图。

1、 如何使用SuperMap iServer发布天地图标准的服务
SuperMap iServer平台提供了自定义的服务接口,支持 WMTS 1.0.0 标准的服务。
在iServer的管理页面中找到【服务】-【服务接口】-【添加服务接口】,新建wmts服务接口,比例尺集选择Custom,填入天地图比例尺分母数组(填入的时候不用写中括号)
[2.958293554545656E8,1.479146777272828E8,3.69786694318207E7,1.848933471591035E7,
9244667.357955175,4622333.678977588,2311166.839488794,1155583.419744397,
577791.7098721985,288895.85493609926,144447.92746804963,72223.96373402482,
36111.98186701241,18055.990933506204,9027.995466753102,4513.997733376551,
2256.998866688275,1128.4994333267211,564.2497166633606]
DPI设置96,点击【保存】

然后找到%SuperMap iServer_HOME%\webapps\iserver\WEB-INF\iserver-services-interfaces.xml服务接口配置文件,找到新建的服务接口wmts-TDT

在<tileMatrixSets>中填入自定义的瓦片矩阵集名,添加<matrixList>节点,填入天地图每一级别的瓦片矩阵,注意大小写。然后在服务发布的时候勾选上wmts1.0.0服务,自定义的接口服务会自动添加上。发布成功后获取能力文档

2、叠加地图

//天地图分辨率数组
resolutions=[0.703125, 0.3515625, 0.17578125, 0.087890625, 0.0439453125, 0.02197265625, 0.010986328125, 0.0054931640625, 0.00274658203125, 0.001373291015625, 0.0006866455078125, 0.00034332275390625, 0.000171661376953125, 0.0000858306884765625, 0.00004291534423828125, 0.000021457672119140625, 0.0000107288360595703125, 0.00000536441802978515625, 0.000002682209014892578125, 0.0000013411045074462890625];
var matrixIds=[];
//矩阵标识符列表
for(var i=0;i<20;i++){
matrixIds[i]={identifier:i+1}; }
//全球矢量地图
WMTSLayer = new SuperMap.Layer.WMTS({
name: "vec",
url: "http://t0.tianditu.com/vec_c/wmts",
layer: "vec",
isBaseLayer:false,
style: "default",
matrixSet: "c",
format: "tiles",
opacity: 1,
requestEncoding: "KVP",
resolutions: resolutions,
matrixIds: matrixIds,
maxExtent: new SuperMap.Bounds(-180,-90,180,90),
tileSize: new SuperMap.Size(256,256)
});

WmtsLayerjingjin = new SuperMap.Layer.WMTS({
name: "京津地区地图",
url: "http://localhost:8090/iserver/services/map-Jingjin/wmts-TDT",
layer: "京津地区地图",
isBaseLayer:false,
style: "default",
matrixSet: "Matrix_0",
format: "image/png",
resolutions: resolutions,
matrixIds: matrixIds,
opacity: 1,
requestEncoding: "KVP"
});
map.addLayers([WMTSLayer, WmtsLayerjingjin]);
map.setCenter(new SuperMap.LonLat(117,40), 5);

由于有些地方天地图的分辨率数组长度和全球矢量地图(或者底图)的分辨率数组长度可能不一致,为了保证能够无缝叠加上,叠加的地图分辨率数组应该包含于或者等于底图分辨率数组,比如此例中,底图的分辨率数组是1-19,而叠加的影像地图分辨率数组是1-20,因为地图缩放级别是以底图为准的,所以为了保证能够无缝叠加,将底图的分辨率数组也设置成了1-20.
效果如下:

ps:天地图接口配置文件(http://download.csdn.net/detail/supermapsupport/9795590)138行
---------------------
作者:SuperMap技术控
来源:CSDN
原文:https://blog.csdn.net/supermapsupport/article/details/66974049
版权声明:本文为博主原创文章,转载请附上博文链接!

使用SuperMap对接天地图的更多相关文章

  1. SuperMap GIS资料-----云与Web端技术资料集锦

    转自:http://blog.csdn.net/supermapsupport/article/details/70254484 产品白皮书 iServer产品  教学视频  许可说明  安装部署   ...

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

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

  3. 开放融合 | “引擎级”深度对接!POLARDB与SuperMap联合构建首个云原生时空平台

    阿里巴巴新一代自研云数据库POLARDB与超图软件SuperMap GIS实现 “引擎级”深度对接,构建了自治.弹性.高可用的云原生时空数据管理平台联合解决方案,推出了业界首个“云原生数据库+云原生G ...

  4. SuperMap webgl对接iportal托管的三维服务

    在webgl中对接iportal加密的三维服务时,需要提前注册key值.Cesium.Credential.CREDENTIAL = new Cesium.Credential("你的key ...

  5. SuperMap iClient for JavaScript 新手入门

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

  6. SuperMap

    SuperMap iClient for JavaScript 新手入门 地理信息系统(英语:Geographic Information System,缩写:GIS)是一门综合性学科,结合地理学与地 ...

  7. 转载---SuperMap GIS 9D SP1学习视频播单

    转自:http://blog.csdn.net/supermapsupport/article/details/79219102 SuperMap GIS 9D SP1学习视频播单 我们一直在思考什么 ...

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

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

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

    http://blog.sina.com.cn/s/blog_6259ebd50102v221.html 什么是WMTS服务 WMTS,切片地图Web服务(Web Map Tile Service)当 ...

随机推荐

  1. CruiseControl 安装配置

    https://sourceforge.net/projects/ccnet/files/CruiseControl.NET%20Releases/ 一个完整的配置文件(VS2010的解决方案)其他版 ...

  2. SQL 通配符的使用?三种

    SQL 通配符 通配符可用于替代字符串中的任何其他字符. SQL 通配符 在 SQL 中,通配符与 SQL LIKE 操作符一起使用. SQL 通配符用于搜索表中的数据. 在 SQL 中,可使用以下通 ...

  3. Java 强制类型转换

    java提高篇(十一)-----强制类型转换 在java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换. 在Java中由于继承和向上转型,子类可 ...

  4. java - 线程等待与唤醒

    Java多线程系列--“基础篇”05之 线程等待与唤醒 概要 本章,会对线程等待/唤醒方法进行介绍.涉及到的内容包括:1. wait(), notify(), notifyAll()等方法介绍2. w ...

  5. Software-Defined Networking之搬砖的故事

    在很久很久以前,有一个村子. 村里的每一户,都有一个男人和一个女人. 每一户,都以搬砖为生. 从不同的地方,搬到不同的地方. 男人负责搬砖,女人负责告诉男人往哪搬. 每个家庭,都服从村委会的指挥. 村 ...

  6. BZOJ2337: [HNOI2011]XOR和路径(期望 高斯消元)

    题意 题目链接 Sol 期望的线性性对xor运算是不成立的,但是我们可以每位分开算 设\(f[i]\)表示从\(i\)到\(n\)边权为1的概率,统计答案的时候乘一下权值 转移方程为 \[f[i] = ...

  7. element-ui Steps步骤条组件源码分析整理笔记(九)

    Steps步骤条组件源码: steps.vue <template> <!--设置 simple 可应用简洁风格,该条件下 align-center / description / ...

  8. AngularJS学习之 登录表单 清爽验证(边学边更新)

    注册过程的确好多需要验证的,但是注册成功之后的登录就简单多了, 只要用户 输入 用户名和密码, ajax向后台提交登录请求, 根据返回的结果确定用户名或者密码是否正确即可登录. 所以这个登录表单的验证 ...

  9. Nginx的常用功能

    1.规范nginx的配置文件 在企业中我们的虚拟主机可能会很多,配置文件的内容也会有很多,这时候我们就可以规范一下我们的配置文件,把每个虚拟主机按照网站的域名或者是功能取名,放到统一的文件夹中,当然我 ...

  10. [随时更新] Git的过滤规则 .gitignore 配置

    往github上传代码的时候,很多文件没必要都传,这就需要在.gitignore文件里配置一下过滤规则.在此记录一下各种项目的配置参数,先从最近做的android开始. 原文地址请保留http://w ...