初始化地图后,禁用bing map中的触摸

时间:2014-01-03 06:22:10

标签: bing-maps

如何在初始化bing map后禁用移动触摸事件?

我们可以在使用MapOptions对象通过下面的代码进行初始化之前禁用。但是我正在照看Bing Map的初始化。

// Set the map and view options, setting the map style to Road and
// removing the user's ability to change the map style
var mapOptions = {credentials:"Bing Maps Key",
                  height: 400,
                  width: 400,
                  mapTypeId: Microsoft.Maps.MapTypeId.road,
                  disableTouchInput : true,
};

// Initialize the map
var map = new Microsoft.Maps.Map(document.getElementById("mapDiv"), mapOptions); 

非常感谢任何帮助。在此先感谢!!!

2 个答案:

答案 0 :(得分:3)

大多数MapOptions在传递到地图的setOptions方法时都有效。例如,试试这个:map.setOptions({disableTouchInput:true});

请注意,我只在IE中对此进行了测试。如果您只想禁用平移和缩放,可以通过多种不同方式执行此操作。第一种是使用地图选项,另一种是使用viewchange事件,存储原始地图位置并继续将地图设置为同一视图以锁定它。

答案 1 :(得分:1)

由于您无法在创建地图后设置大多数MapOptions,因此您只能通过将地图替换为所需选项的新地图来执行此操作。这是一个非常基本的示例,但这里是一个显示和隐藏bing徽标的示例,这是您无法使用setOptions更改的设置之一。

function switchMapOptions(active, inactive) {

    try {
        var newMap = new MM.Map($(inactive)[0], options);

        for (var i = 0; i < map.entities.getLength(); i++) {
            var loc = map.entities.get(i).getLocation();
            newMap.entities.push(new MM.Pushpin(loc));
        }

        newMap.setView({center: map.getCenter(), zoom: map.getZoom(), animate: false});

        map.dispose();
        map = newMap;
    }
    catch (e) {
        alert(e.message);
    }
}

Jsfiddle的完整代码:http://jsfiddle.net/bryantlikes/zhH5g/4/