我有一个界面,用户可以在其中管理其业务的多个位置,添加其他位置并删除不再需要的位置。
在界面中,我显示了一个位置列表,每个位置都有自己的 map 。
我的问题是如何锁定 map ,以防止用户在单击“编辑位置”按钮之前平移或移动标记?
是否有某种toggleMapLock函数?
到目前为止,我有以下两种方法。锁();方法可以正常工作,但是unlock();该方法由于某些原因而无效。
lock: function() {
this.map.disableDoubleClickZoom = true;
this.map.draggable = false;
this.map.keyboardShortcuts = false;
this.map.navigationControl = false;
this.map.scaleControl = false;
this.map.scrollwheel = false;
this.map.streetViewControl = false;
this.marker.draggable = false;
},
unlock: function() {
this.map.disableDoubleClickZoom = false;
this.map.draggable = true;
this.map.keyboardShortcuts = true;
this.map.navigationControl = true;
this.map.scaleControl = true;
this.map.scrollwheel = true;
this.map.streetViewControl = true;
this.marker.draggable = true;
console.log("unlock");
},
最佳答案
disableDoubleClickZoom(以及列出的其他属性)不是Map类的公共(public)属性,它们是MapOptions类的属性。要更改其值,您需要执行以下操作:
lock: function() {
this.map.setOptions({
disableDoubleClickZoom: true,
draggable: false
});
},
unlock: function() {
this.map.setOptions({
disableDoubleClickZoom: false,
draggable: true
});
}
这将创建一个MapOptions对象(在{}内)并将其传递给SetOptions,SetOptions根据传入的值更新Map的当前状态。