地图缩放问题

0 投票
我的地图缩放级别是6-17,当我放大到17以上时会报cannot read property 'identifier' of underfined,缩小到5以下时没有底图。

我要限制地图缩放级别在6-17之内,通过按钮放大缩小可以判断缩放级别是否小于6或者大于17从而达到是否执行zoomIn和zoomOut方法。

但是双击手势和双指张开、捏合手势的判断我该怎么做?
1月 19, 2018 分类:  1679次浏览 | 用户: 岛风 才疏学浅 (14 分)
重新分类 1月 19, 2018 用户:胡林

1个回答

0 投票
你好,如果你想限制地图缩放级别的话,可以通过设置map.maxZoom和map.minZoom来实现。

设置了之后地图就无法缩放到你设置之外的级别,不需要自己去判断是否在6-17级内
1月 19, 2018 用户: 郑雅琳 名扬四海 (1,603 分)
设置map.maxZoom和minZoom无效,不起效果...

map.maxScale和minScale也一样无效

我把地图加载代码贴出来给您帮我看一看吧

map = new SuperMap.Map(id,{maxResolution:0.703125/(Math.pow(2, 5)),controls:[new SuperMap.Control.Navigation()]});
    	
    var matrixIds = [];
    for (var i=0; i<19; ++i) {
        matrixIds[i] = {identifier:i};
    };
    //当前图层的分辨率数组信息,和matrixIds一样,需要用户从wmts服务获取并明确设置,resolutions数组和matrixIds数组长度相同
    var resolutions = [];
    for(var i = 0, res = 0.703125; i < 19; i++){
    	resolutions[i] = res;
		res /= 2;
	}
    vecLayer = new SuperMap.Layer.WMTS({name: "天地图矢量图层",
        url: "http://t0.tianditu.com/vec_c/wmts",
        layer: "tdtgx_vec",
        style: "default",
        matrixSet: "guobiao",
        format: "tiles",
        resolutions:resolutions,
        matrixIds:matrixIds,
        opacity:1,
        zoomOffset:1,
        isBaseLayer:true,
        tileOrigin:new SuperMap.LonLat(-180,90),
        tileFullExtent:new SuperMap.Bounds(104.446173906,20.8934573829,112.057633996,26.3878914714),
        requestEncoding:"KVP"});
    map.addLayers([imgLayer]);
    
    map.setCenter(new SuperMap.LonLat(109.23,23.29),6);
    
	}

如果你是只想展示6-17级别的地图,你是WMTS图层,你就只对接6-17级就行了
对接6-17级的具体操作和代码是怎样的呢...我对地图的操作还不是很了解
...