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

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

猜你喜欢

转载自blog.csdn.net/A873054267/article/details/86652620
今日推荐