cesium加载arcgis 发布的 CGCS2000坐标系的WMTS地图服务

这几天一直在试验cesium加载arcgis发布的服务。起初认为cesium不支持cgcs2000坐标系,因为在控制台明确提示了不支持4490.

后来发现天地图也是CGCS2000也是支持的,为什么能加载呢。然后才知道cesium的加载mapserver服务,必须是4326或者墨卡托。而对于切片地图服务,没有这个限制,因此进行了加载WMTS服务的一系列探索。

WMTS是OGC出台的标准,这种服务有固定的加载方式,具体就不多说了,一搜一大推,主要是两个问题

1 对于服务器在linux上面的,各参数大小写敏感(群里以为大神说的,有待考证),一定要与WMTS文档一致。

那么就要看看这个WMTS文档了。对于初学者很头疼,虽然接触一年多了webgis,我现在也不太明白,迷迷糊糊的。

首先打开wmts文档

打开wmts文档的方式,最方便的是

其次如果没有这样的网页,通过GetCapabilities也可以获得,以国家天地图为例

http://t0.tianditu.gov.cn/vec_w/wmts?request=GetCapabilities&service=wmts&tk=你的token

各项参数说明

http://tdt.fuzhou.gov.cn/help/apipfs/3.htm

是否为必须参数,也会在WMTS文档中进行说明

其中这个TileMatrixSet有点奇怪,一般来说是 GoogleMapsCompatible,但在访问某些政府网站的时候,发现是sss。有待研究。

其次就是layer参数,这些参数一般都不用改,除非服务器在linux上面,

抛去style不谈,其次三个依次对应层级,改层级下面的行列号坐标,即可得到唯一的瓦片了

style=default&tilematriX={TileMatrix}&tilerow={TileRow}&tilecoL={TileCol}

url:".../WMTS?service=WMTS&request=GetTile&layer=CZ_Vector&style=default&tilematriX={TileMatrix}&tilerow={TileRow}&tilecoL={TileCol}"

此外一个注意的问题是,对于高分辨影像,可能要缩放到很小时,才会显示,因此注意观察network里面的请求是否返回了数据。

 

以温州天地图为例:咱们一步步进行wmts服务的加载,

1百度天地图温州,然后进入电子地图,打开network,查看其访问的url

2 我们来查看其wmts文档

http://61.175.211.102/arcgis/rest/services/wzmap/map/MapServer/WMTS?request=GetCapabilities&service=wmts

3 根据上面的知识,可以拼出url为

url:"http://61.175.211.102/arcgis/rest/services/wzmap/map/MapServer/WMTS?service=WMTS&request=GetTile&layer=wzmap&style=default&tilematriX={TileMatrix}&tilerow={TileRow}&tilecoL={TileCol}"

根据评论区网友提供的可用url:http://61.175.211.102/arcgis/rest/services/TDT/SLDT/MapServer/WMTS/tile/1.0.0/TDT_SLDT/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png

然后就可以在cesium中正确加载了

加载代码

    var provider = new Cesium.WebMapTileServiceImageryProvider({
        url: 'http://61.175.211.102/arcgis/rest/services/TDT/SLDT/MapServer/WMTS/tile/1.0.0/TDT_SLDT/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png',
        layer: 'wzmap_map',
        style: 'default',
        tileMatrixSetID: 'default028mm',
        format: 'image/png',
        tilingScheme: new Cesium.GeographicTilingScheme(),
        maximumLevel: 21,
        tileMatrixLabels: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21']
    });
    var imageryLayers = viewer.imageryLayers;
    var layer1 = imageryLayers.addImageryProvider(provider);

 

 

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 33
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值