加载wmts

0 投票

使用产品:iClient Classic 9d 9.0.1 操作系统:win10 x64  浏览器:Google浏览器
数据类型: wmts(https://tiles.openaerialmap.org/5a28639331eff4000c380690/0/5b1b6fb2-5024-4681-a175-9b667174f48c/wmts
问题详细描述:加载wmts失败。希望能显示出“https://map.openaerialmap.org/#/-175.34457564353943,-21.096752491518497,16/square/20002233030/5a28640ebac48e5b1c58a81d?_k=rf265h”页面里的影像地图,但使用wmts无法加载。
问题重现步骤: HTML代码:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>WMTS图层</title>
</head>
<body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
<div id="map" style="margin:0 auto;width: 100%;height: 100%"></div>
<script type="text/javascript" exclude="iclient-classic" src="js/include-classic.js"></script>
<script type="text/javascript">
    var map, layer,
        host = "https://tiles.openaerialmap.org";
    url = host + "/5a28639331eff4000c380690/0/5b1b6fb2-5024-4681-a175-9b667174f48c/wmts";
    map = new SuperMap.Map("map", {
        controls: [
            new SuperMap.Control.ScaleLine(),
            new SuperMap.Control.Zoom(),
            new SuperMap.Control.Navigation({
                dragPanOptions: {
                    enableKinetic: true
                }
            })]
    });

    //wmts或许所需要的matrixID信息
    var matrixIds = [];
    for (var i = 0; i < 2; ++i) {
        matrixIds[i] = {identifier: 11 + i};
    }
    
    //当前图层的分辨率数组信息,和matrixIds一样,需要用户从wmts服务获取并明确设置,resolutions数组和matrixIds数组长度相同
    var resolutions = [1/136494.693367, 1/68247.3466833];
    //新建图层
    layer = new SuperMap.Layer.WMTS({
        name: "World",
        url: url,
        layer: "World",
        style: "default",
        matrixSet: "Kolovai UAV4R Subset",
        format: "image/png",
        resolutions: resolutions,
        matrixIds: matrixIds,
        opacity: 1,
        requestEncoding: "KVP"
    });

    //图层添加并显示指定级别
    map.addLayers([layer]);
    map.setCenter(new SuperMap.LonLat(-175.349072071, -21.1049318752), 1);
</script>
</body>
</html>

2月 24, 2018 分类:  721次浏览 | 用户: liweigu (2 分)

2 个回答

0 投票

您好,请参考范例http://iclient.supermapol.com/examples/classic/editor.html#OGC_wmtsLayer,代码确认无误的情况下请检查url是否正确。

2月 26, 2018 用户: 李熙y 名扬四海 (4,436 分)
0 投票

检查下参数,参数填错了,建议参考这篇文档查看这些参数怎么从WMTS服务能力描述xml文档里获取:
SuperMap iClient如何使用WMTS地图服务提取码:tbg9 (在超图技术资源中心网站搜索WMTS选技术文章分类)

2月 26, 2018 用户: 毛瑞 名扬四海 (1,780 分)
准确的说是
layer
和 matrixSet填错了

另外还需要写上全幅范围(瓦片集的坐标系是3857(墨卡托),layer里写的是4326(WGS84),这么神奇的服务么?)

瓦片大小是512*512,默认是256*256,所以matrixIds[i] = {identifier: 11 + i};还要加上:
 

matrixIds[i] = {
identifier: 11 + i,
topLeftCorner:val,
tileWidth:val,
tileHeight:val
};

见类参考 http://iclient.supermap.io/libs/iclient8c/apidoc/files/SuperMap/Layer/WMTS-js.html#SuperMap.Layer.WMTS.matrixIds

我看服务预览(https://map.openaerialmap.org/#/-175.34457564353943,-21.096752491518497,16/square/20002233030/5a28640ebac48e5b1c58a81d?_k=rf265h)确实是放经纬度坐标系的,不是投影坐标系,然后可以下载tif的。。。
WMTS服务能力文档描述都能有问题。。。

...