• 使用SuperMap对接天地图


    我们在做项目时,经常需要与天地图对接,对接形式分为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%webappsiserverWEB-INFiserver-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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    被学长教会的高斯消元法Gauss
    KMP字符串匹配算法翔解❤
    fkwの题目(祝松松生日快乐!)
    NOI-linux下VIM的个人常用配置
    从2017年暑假到现在手打的模板↑_↑
    【テンプレート】初级数据结构
    【テンプレート】高精
    DP(第二版)
    luogu P1029 最大公约数和最小公倍数问题
    贪心题整理
  • 原文地址:https://www.cnblogs.com/telwanggs/p/10285952.html
Copyright © 2020-2023  润新知