如何在初始化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);
非常感谢任何帮助。在此先感谢!!!
答案 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/