2012-11-22 145 views
0

我有一個問題:如何刷新谷歌地圖

  1. 我放在地圖上的標記
  2. 我過濾數據,並希望將這些標誌的一部分=>我JSON發送到服務器
  3. 我得到迴應,刪除所有標記,並嘗試放置新的標記,但我的gmap有灰色,沒有出現任何內容。 這裏是一些代碼片段:

    var pins; 
    
    function processFilterResult(data) { 
    
        pins = data; 
    
        var myLatlng = new google.maps.LatLng(pins[0].gpsLocationN, pins[0].gpsLocationW); 
        var myOptions = { 
         zoom : 7, 
         center : myLatlng, 
         mapTypeId : google.maps.MapTypeId.ROADMAP 
        }; 
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
        for(var i=0; i<pins.length; i++) { 
         pins[i] = createMarkers(new google.maps.LatLng(pins[i].gpsLocationN,pins[i].gpsLocationW), pins[i]); 
        } 
    } 
    
    function initializeGMap() { 
    
        pins = convertToJSON($("#someId")); 
    
        var myLatlng = new google.maps.LatLng(pins[0].gpsLocationN, pins[0].gpsLocationW); 
        var myOptions = { 
         zoom : 7, 
         center : myLatlng, 
         mapTypeId : google.maps.MapTypeId.ROADMAP 
        }; 
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
        for(var i=0; i<pins.length; i++) { 
         pins[i] = createMarkers(new google.maps.LatLng(pins[i].gpsLocationN,pins[i].gpsLocationW), pins[i]); 
        } 
        google.maps.event.addListener(map, 'click', function(event) { 
    
        });} 
    

明確標記:

function clearOverlays() { 
      for (var i = 0; i < pins.length; i++) { 
      pins[i].setMap(null); 
      } 
      pins = new Array(); 
    } 

過濾:

 $.post(
          "/mediabook/owner/filterMaps.json", 
          a, 
          function(data) { 
           clearOverlays(); 
           processFilterResult(data); 
          }); 
+0

當您添加標記時,您不想創建新的地圖對象,而是希望將它們添加到預先存在的對象。重要的是要注意當你的代碼失敗時拋出的錯誤 – charlietfl

+0

這是一個問題或提示?如果小費,感謝它 –

+0

ws關於錯誤的提示,看在控制檯,並且當有一個問題包括錯誤信息 – charlietfl

回答

1

我不是,雖然清除所有的代碼,我想你代碼應該是這樣的:

var map; 
function processFilterResult(data) 
{ 
    pins = data; 
    var myLatLng = new google.maps.LatLng(pins[0].gpsLocationN, pins[0].gpsLocationW); 
    map.panTo(myLatLng); 
    for(var i=0; i<pins.length; i++) 
    { 
     pins[i] = createMarkers(new google.maps.LatLng(pins[i].gpsLocationN,pins[i].gpsLocationW), pins[i]); 
    } 
} 
+0

非常感謝!你幫了我很多! :) –