Pergunta

Nós podemos ?

Eu quero fazer algo assim:

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

como capturar o 'db_right_click' Evento ??

Existe alguma maneira ??

Foi útil?

Solução

entendi

e

este é o meu código:

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

Outras dicas

Eu não conseguia ver uma maneira fácil de capturar o evento duplo de clique com o botão direito do mouse no Google Maps.

Mas aqui está o trabalho que eu usei para o meu caso de uso:

O que eu precisava era executar uma ação em um único clique com o botão direito, mas não executar essa ação em um clique com o botão direito duplo, basta deixar o mapa o zoom como normal.

Também notei que o Google Maps emite apenas 1 evento do clique direito, mesmo quando você clica com o botão direito do mouse.

Então, tudo o que fiz foi ouvir no evento RightClick do Google e, em seguida, o Settimeout por 300 milissegundos e, se o novo zoom foi diferente do zoom antigo, isso significa que eles dobraram o botão direito, caso contrário, execute minha ação:

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

Você pode capturar o evento duplo de clique com o botão direito do javascript, mas não é suficiente se precisar de alguns dados específicos do evento do Google Maps. Por exemplo, você precisa obter coordenadas do local com o botão direito do mouse. Aqui está a solução:

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

Você pode obter qualquer propriedade do evento do Google Map da mesma maneira.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top