2014-01-08 110 views
0

我们在解开地图事件时遇到了麻烦......我们尝试了下面的代码,但地图平移事件只是第一次被触发。谷歌地图V3:触发地图平移事件

<!DOCTYPE html> 
<html> 
    <head> 
     <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
     <style type="text/css"> 
      html { height: 100% } 
      body { height: 100%; margin: 0; padding: 0 } 
      #map-canvas { height: 100% } 
     </style> 
     <script charset="UTF-8" type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=<key>&sensor=false"></script> 

     <script type="text/javascript"> 
      function initialize() { 
       var mouseDown; 
       var mapOptions = { 
        center: new google.maps.LatLng(-34.397, 150.644), 
        zoom: 8 
       }; 
       var map = new google.maps.Map(document.getElementById("map-canvas"), 
         mapOptions); 
       map.addListener("center_changed", function() { 

        // alert("center_changed"); 
        console.log("center_changed"); 

       }); 

       map.addListener("mouseup", function() { 
        this.mouseDown = false; 
        // alert("mouseup"); 
       }); 

       map.addListener("mousedown", function() { 
        this.mouseDown = true; 
        // alert("mousedown"); 
       }); 
      } 

      google.maps.event.addDomListener(window, 'load', initialize); 

      /*  google.maps.event.addListener('dragend', function() { 
      return function() { 
      console.log("Drag Event Called"); 

      } 
      }); 
      */ 


     </script> 
    </head> 
    <body> 
     <div id="map-canvas"></div> 
    </body> 
</html> 

请提供思路来克服这个...

+0

我也面临同样的问题。请为我提供答案..... – Sridhar

+2

我的代码中没有看到任何“泛”事件,并且我没有看到任何尝试在代码中触发事件。也许它只是你的英语,但请解决你的问题是可以理解的。 – TMS

回答

2

你可以试试这个。

map.addListener("dragend", function() { 

        // alert("center_changed"); 
        count++; 
        console.log("center_changed"+count); 
        //ur method ..... 

       }); 
+0

谢谢,我对这个小错误有罪.. –

+1

虽然没有必要在initialize()之上声明map。 – putvande

+0

是的这是工作,,,, – Sridhar

3

而不是map.addListener你应该尝试google.maps.event.addDomListener代替:

google.maps.event.addDomListener(map, 'dragend', function() { 
    console.log('center changed'); 
}); 
+0

谢谢你,你的线索... –

+0

是的,只是意识到你在代码中注释掉的那一点就是你想要的帮助。我已经用'dragend'事件更新了我的答案。我建议你使用'addDomListener',因为我相信这是首选的方法。 – Andy

+0

是的这样....再次感谢... –