javascript - 在 Google Maps API v3 中切换平移和标记移动锁定

标签 javascript google-maps google-maps-api-3

我有一个界面,用户可以在其中管理其业务的多个位置,添加额外的位置和删除他们不再需要的位置。

在我的界面中,我显示了一个位置列表,每个位置都有自己的 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,后者根据传入的值更新 Map 的当前状态。

关于javascript - 在 Google Maps API v3 中切换平移和标记移动锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4444920/

相关文章:

javascript - 使用 HTTPS 时不显示上传进度

javascript - jQuery 使用 height() 来改变 div 的高度

Javascript RegEx 从字符串中删除多个单词

javascript - 是否可以隐藏(切换)主 map 层并仅显示地面覆盖图像本身?

java - 根据当前位置缩放标记位置android

javascript - 单击父复选框时检查子复选框

ios - 使用 Google Map sdk iOS Xamarin 显示所有标记

google-maps - 谷歌地图 V3 中心多个标记和自动缩放问题

google-maps-api-3 - 无需重新加载即可更改 Google 地方信息自动完成语言

javascript - 是否可以在客户端上显示没有 LatLong 的 Google map 圆圈