Можем ли мы поймать событие «двойное щелчок правой кнопкой мыши» на Google-MAPS-V3?

StackOverflow https://stackoverflow.com/questions/2564943

Вопрос

мы можем ?

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

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

Как поймать 'db_right_click' мероприятие ??

там в любом случае ??

Это было полезно?

Решение

Я понял

а также

Это мой код:

//***********  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 ********/

Другие советы

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

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

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

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

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

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)
});

Вы можете поймать событие с двойным щелчком правой кнопкой мыши от 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 Map таким же образом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top