首页 / 浏览问题 / 云GIS / 问题详情
天地图提供有18级,但是classic 只能放大到15级
256EXP 2019年12月09日

使用超图的示例加载天地图的地图服务,地图只能放大到15级,但是天地图提供有18级,请问相关参数需要如何设置?

<script type="text/javascript">
    var map, tiandituLayer, marker, markers, tianMarkerLayer;
    map = new SuperMap.Map("map", {
        controls: [
            new SuperMap.Control.Navigation(),
            new SuperMap.Control.Zoom(),
            new SuperMap.Control.LayerSwitcher()

        ], allOverlays: true
    });
    tiandituLayer = new SuperMap.Layer.WMTS({
        name: "vec",
        url: "http://t0.tianditu.com/vec_c/wmts?tk=1d109683f4d84198e37a38c442d68311",
        layer: "vec",
        style: "default",
        matrixSet: "c",
        format: "tiles",
        opacity: 1,
        requestEncoding: "KVP"
    });
    tianMarkerLayer = new SuperMap.Layer.WMTS({
        name: "vec",
        url: "http://t0.tianditu.com/cva_c/wmts?tk=1d109683f4d84198e37a38c442d68311",
        layer: "cva",
        style: "default",
        matrixSet: "c",
        format: "tiles",
        opacity: 1,
        requestEncoding: "KVP"
    });
    tianMarkerLayer.layerType = "cva";
    tianMarkerLayer.isLabel = true;
    map.addControl(new SuperMap.Control.MousePosition());
    markers = new SuperMap.Layer.Markers("Markers");
    map.addLayers([tiandituLayer, markers, tianMarkerLayer]);
    map.setCenter(new SuperMap.LonLat(23, 37), 3);
    addMarker();

    var infowin = null;
    //定义mouseClickHandler函数,触发click事件会调用此函数
    function mouseClickHandler(event) {
        closeInfoWin();
        //初始化popup类
        popup = new SuperMap.Popup(
            "chicken",
            marker.getLonLat(),
            new SuperMap.Size(220, 140),
            '<img src="images/xila.jpg">',
            true,
            null
        );

        infowin = popup;
        //添加弹窗到map图层
        map.addPopup(popup);
    }

    function closeInfoWin() {
        if (infowin) {
            try {
                infowin.hide();
                infowin.destroy();
            }
            catch (e) {
            }
        }
    }

    function addMarker() {
        size = new SuperMap.Size(50, 50);
        offset = new SuperMap.Pixel(-(size.w / 2), -size.h);
        icon = new SuperMap.Icon('../img/markerbig_select.png', size, offset);
        //初始化标记覆盖物类
        marker = new SuperMap.Marker(new SuperMap.LonLat(23.6530190, 37.9439259), icon);
        //添加覆盖物到标记图层
        markers.addMarker(marker);
        //注册 click 事件,触发 mouseClickHandler()方法
        marker.events.on({
            "click": mouseClickHandler,
            "touchstart": mouseClickHandler     //假如要在移动端的浏览器也实现点击弹框,则在注册touch类事件
        });
    }
</script>

1个回答

您可以按照天地图服务的分辨率设置resolutions。具体设置方法可以参考API 

http://iclient.supermap.io/web/libs/iclient8c/apidoc/files/SuperMap/Layer/WMTS-js.html#SuperMap.Layer.WMTS.SuperMap.Layer.WMTS

5,668EXP 2019年12月09日
我不是说方法,我是说支持的事件类型,比如双击双击、鼠标移出事件等?
就这些列表里支持的事件,然后就没有了吗? 比如ZoomStart
没有zoomstart事件。如果想监听zoomstart的话可以通过movestart来实现。全局设置一个变量获取当前比例尺,在进行move事件的时候监听movestart后的比例尺,判断是否为同一比例尺,同一比例尺则为非zoom事件,否则为zoomstart事件。
解决问题了吗,天地图18级以上图片不显示问题
...