Переключить панорамирование и блокировку перемещения маркера в Google Maps API v3 - PullRequest
3 голосов
/ 15 декабря 2010

У меня есть и интерфейс, где пользователь может управлять несколькими местоположениями для своего бизнеса, добавляя дополнительные местоположения и удаляя местоположения, которые ему больше не нужны.

В моем интерфейсе я показываю список локаций, каждая со своей картой.

Мой вопрос заключается в том, как заблокировать карту, чтобы пользователь не мог панорамировать или перемещать маркер, пока он не нажмет кнопку «Изменить местоположение»?

Существует ли какая-либо функция 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");  
},

1 Ответ

4 голосов
/ 16 декабря 2010

disableDoubleClickZoom (и другие перечисленные свойства) не являются открытыми свойствами класса Map - они являются свойствами класса MapOptions.Чтобы изменить их значение, вам нужно нечто похожее на следующее:

lock: function() {
  this.map.setOptions({
    disableDoubleClickZoom: true,
    draggable: false
  });
},

unlock: function() {
  this.map.setOptions({
    disableDoubleClickZoom: false,
    draggable: true
  });
}

Это создает объект MapOptions (внутри {}) и передает его в SetOptions, который обновляет текущее состояние карты на основезначения, переданные в.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...