2012-02-28 11 views
5

Esta página describe el conjunto de controles predeterminado para la API de Google Maps V3: http://code.google.com/apis/maps/documentation/javascript/controls.html#DefaultUICómo vincular el controlador de eventos al evento de clic de PanControl predeterminado de la API de Google Maps V3?

Estoy interesado en asumir el evento de clic de PanControl y vincularlo a mi función personalizada.

Por ejemplo, cuando el usuario hace clic en el control de la IU Pan Left (Up/Right/Down), no solo se cambia la ventana del mapa, sino que también se llama a A.

Como me imagino, una forma de hacerlo sería escuchar el evento de clic de Map y comprobar su objetivo.

Cualquier sugerencia/ejemplos (particularmente útil) sobre cómo se puede hacer esto?

Respuesta

1

Su suposición (escuchar el evento click de Map y verificar su destino) suena correcto, ya que no hay implementación para acceder a los controles.

Esto funciona para mí (ahora):

google.maps.event.addDomListener(map.getDiv(),'click', 
      function(e) 
      { 
       var t=e.target, 
        a=[null,'left','right','up','down']; 

       if(
        t.parentNode.parentNode.hasAttribute('controlwidth') 
         && 
        t.parentNode.childNodes.length==5 
         && 
        t.parentNode.firstChild.tagName=='IMG' 
         && 
        t.parentNode.firstChild.src 
         =="http://maps.gstatic.com/mapfiles/mapcontrols3d7.png" 
       ) 
        { 
        for(var i=1;i<t.parentNode.childNodes.length;++i) 
        { 
         if(t.parentNode.childNodes[i]==t) 
         { 
         alert('You\'ve clicked on \n>>>'+a[i]+ 
           '\nyou may call a function now.'); 
         } 
        } 
        } 
      }); 

http://jsfiddle.net/doktormolle/fwgMy/

pero sólo funciona hasta que Google va a modificar el margen de beneficio, y esto puede ser mañana.

Un mejor enfoque sería ocultar el pan-control y crear su propio control.

Cuestiones relacionadas