мы можем поймать событие "двойной щелчок правой кнопкой мыши" на google-maps-v3? - PullRequest
5 голосов
/ 02 апреля 2010

мы можем?

я хочу сделать что-то вроде этого:

google.maps.event.addListener(map, 'db_right_click', function(event) {
   alert('ssss')
}

как перехватить событие 'db_right_click' ??

есть ли способ ??

Ответы [ 3 ]

1 голос
/ 03 декабря 2014

Я не мог найти простой способ запечатлеть событие двойного щелчка правой кнопкой мыши на картах Google.

Но вот обходной путь, который я использовал для своего варианта использования:

Мне нужно было выполнить действие одним щелчком правой кнопки мыши, но не выполнять это действие при двойном щелчке правой кнопкой мыши, просто позвольте карте уменьшаться, как обычно.

Я также заметил, что карты Google генерируют только одно событие правого клика даже при двойном щелчке правой кнопкой мыши.

Итак, все, что я сделал, это прослушал событие правого клика Google, а затем установил TimeTimeout на 300 миллисекунд, и если новый зум отличался от старого зума, это означает, что они дважды щелкнули правой кнопкой мыши, в противном случае выполните мое действие:

google.maps.event.addListener(map, "rightclick", function(event) {
    var zoom = map.getZoom()
      setTimeout(function () {
      if (map.getZoom() == zoom) { // zooms are the same so they didn't double right click.
        handleSingleRightClick() // <-- your code here
      }
    }, 300)
});
1 голос
/ 02 апреля 2010

я понял

и

это мой код:

//***********  double right click ********/ 
                                var c =0 ;
                                $('#map_canvas')[0].onmousedown=function(event){
                                    if(event.button == 2){
                                        c++;
                                setTimeout(cc, 600);
                                }
                             if (c >1){
                                   alert('ok i get it')
                                }
                                }
                                function cc{
                                    c=0;
                                }
                              //***********  double right click ********/
0 голосов
/ 30 марта 2018

Вы можете поймать событие двойного щелчка правой кнопкой мыши по JavaScript, но этого недостаточно, если вам нужны определенные данные из события Google Maps. Например, вам нужно получить координаты места, которое дважды щелкнуло правой кнопкой мыши. Вот решение:

// variable to store right clicked place coordinates
let rightClickCoordinates;
// variable to store amounts of right clicks
let rightClicksAmount = 0;

// listener for google map right click event
google.maps.event.addDomListener(map, 'rightclick', (e) => {
    // store coordinates of place was right clicked
    rightClickCoordinates = e.latLng;
});

// listener for google map container double right click event
document.getElementById('your_map_container_id').addEventListener('mousedown', () => {
    // check for double right click
    if(e.button == 2) {
        // if right mouse button clicked increase amount by 1
        rightClicksAmount++;
    }

    // if we had more than 1 right click during the 300 ms - we caught right double click event
    if (rightClicksAmount > 1) {
        // do what you want with coordinates
        console.log(rightClickCoordinates.lat() + ', ' + rightClickCoordinates.lng());
    }

    // after 300ms set right clicks amount to 0
    setTimeout(()=> {
        rightClicksAmount = 0;
    }, 300);
}});

Таким же образом вы можете получить любое свойство события карты Google.

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