от
В моем приложении все функции по умолчанию отключены с помощью:
disableDefaultUI: true
и нажмите кнопку привязки к функции placeMarker.
mapObj.addListener('click',
    (event) => {
        this.placeMarker(event.latLng) // creates a marker, works fine.
    }
)
То, чего я пытаюсь добиться, это то, что я хочу увеличить карту, когда я нажимаю кнопку dblclick (как в функциональности по умолчанию), но я не хочу, чтобы щелчок слушателя срабатывал при двойном щелчке.
mapObj.addListener('dblclick',
    (event) => {
        console.log("This doesn't fire when I double click")
        // I expect only this to fire.
    }
)
Это не срабатывает, когда я дважды щелкаю, но вместо этого работает функция прослушивания щелчка.              

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

1 Ответ

0 голосов
от
disableDefaultUI
, как следует из его названия, отключает пользовательский интерфейс по умолчанию, а не поведение жестов по умолчанию, поэтому нет причины, по которой это отключает масштабирование двойным щелчком (фрагмент приведен ниже). Вы должны убедиться, что вы не использовали
disableDoubleClickZoom
или установить
gestureHandling
в
none
, но мы не можем сказать, что вы не поделились этой частью своего кода. Что касается срабатывания прослушивателя щелчков вместе с двойным щелчком, лучший способ - установить тайм-аут в приемнике однократного щелчка и очистить его в приемнике двойного щелчка. Вам необходимо определиться с продолжительностью тайм-аута (здесь она установлена на 200 мс).
function initialize() {

  var myLatLng = new google.maps.LatLng(46.2, 6.17);
  var mapOptions = {
    zoom: 4,
    center: myLatLng,
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    disableDefaultUI: true,
  };

  var map = new google.maps.Map(document.getElementById("map
#map
...