3

我建立一個網站,ASP.NET MVC,其中一個功能顯示一個谷歌地圖在某些方面,使用谷歌地圖API的Javascript用戶更改。由於我有很多觀點,我不想把它們都拿走;相反,我想只有那些在用戶正在看地圖(邊框)當前視圖區域的人。,讓AJAX請求時,地圖通過與谷歌地圖API的Javascript

爲了做到這一點,我會做一個AJAX請求我的C#代碼,返回一個特定的邊框內的所有點。不過,我需要以某種方式創建一個事件處理函數,該函數在用戶對地圖進行平移或縮放時捕獲。

如何檢測時,使用谷歌地圖API的JavaScript地圖平移或縮放和觸發一個事件處理程序?

在此先感謝。

更新:我知道我必須實現一個事件監聽器。有人能指向我可以用於Map對象的事件列表嗎? click是這些事件之一,但什麼是涉及到縮放和平移的人?

回答

5

它看起來像您正在尋找idle事件:

當平移或縮放後地圖變爲閒置時,會觸發此事件。

例子:

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
    <title>Google Maps Events</title> 
    <script src="http://maps.google.com/maps/api/js?sensor=false" 
      type="text/javascript"></script> 
</head> 
<body> 
    <div id="map" style="width: 500px; height: 400px;"></div> 

    <script type="text/javascript"> 
    var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 10, 
     center: new google.maps.LatLng(-33.92, 151.25), 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 

    google.maps.event.addListener(map, 'idle', function() { 
     var bounds = map.getBounds(); 

     console.log('North East: ' + 
        bounds.getNorthEast().lat() + ' ' + 
        bounds.getNorthEast().lng()); 

     console.log('South West: ' + 
        bounds.getSouthWest().lat() + ' ' + 
        bounds.getSouthWest().lng()); 

     // Your AJAX code in here ... 
    }); 
    </script> 
</body> 
</html> 

此外,你可以找到從API參考由google.maps.Map對象導出的所有事件的列表:

+0

非常感謝!我正在尋找這樣一個參考頁面,但沒有找到你指向我的部分。 – 2010-06-20 14:43:13

0

我認爲你需要使用在這種情況下,一個事件監聽器監聽的... ..

gmaps events reference

如果使用V3的聽衆

+0

你能指向我可以用於Map對象的事件列表? 「點擊」就是其中之一,但是與縮放和平移有關的是什麼? – 2010-06-19 03:34:39

+0

我發佈一個新的答案,因爲我不能編輯我的第一次,我不知道爲什麼 退房的鏈接,我認爲這是你在尋找什麼 我希望能給大家一些幫助 – TiagoMartins 2010-06-19 17:28:18

0

V3參考搜索這是一個列表Gevents-的>here

可能未列出所有的