Pregunta

podemos ?

Quiero hacer algo como esto:

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

Cómo atrapar el 'db_right_click' evento ??

hay alguna manera ??

¿Fue útil?

Solución

lo entiendo

y

este es mi 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 ********/

Otros consejos

No pude ver una manera fácil de capturar el evento doble para hacer clic derecho en Google Maps.

Pero aquí está el trabajo que usé para mi caso de uso:

Lo que necesitaba era realizar una acción con un solo clic derecho, pero no realizar esa acción con un doble clic derecho, simplemente deje que el mapa se aleje de manera normal.

También noté que Google Maps emite solo 1 evento de cierre de la derecha, incluso cuando duplica el clic derecho.

Entonces, todo lo que hice fue escuchar en el evento declick de Google, y luego SetTimeout durante 300 milisegundos y si el nuevo zoom era diferente al antiguo zoom, eso significa que duplicaban derecho, de lo contrario, realizaba mi acción:

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

Puede ver el doble evento de clic derecho por JavaScript, pero no es suficiente si necesita algunos datos específicos del evento de Google Maps. Por ejemplo, debe obtener coordenadas del lugar que se hizo doble clic derecho. Aquí está la solución:

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

Puede obtener cualquier propiedad del evento de mapa de Google de la misma manera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top