2014-02-28 87 views
0

我有一個谷歌地圖,我填寫的標記與阿賈克斯(帶。每個) 一個問題,我不使用任何陣列刪除標記谷歌地圖

function parks() { 
     $.ajax({ 
      type: 'POST', 
      dataType: 'json', 
      url: '/index.php/route/getParks', 
      success: function(data) { 
       $.each(data.results, function(k,e){ 
        var myLatlng = new google.maps.LatLng(e.lat,e.lng); 
        var marker = new google.maps.Marker({ 
         position: myLatlng, 
         map: mapg, 
         title: 'Places', 
        }); 
       }) 
      } 
     }); 
    } 

是否有解決方案或我被迫做一個數組呢?

謝謝

+2

您將需要一個標記數組,迭代您的數組並在每個標記上調用'setMap(null);',除非重新加載映射是一個選項。 – MrUpsidown

回答

1

你不希望它沒有陣列。你需要搜索整個mapg對象,找到關於標記的相應區域,找到你的標記和bla bla bla;很痛苦。尤其是使用單字母變量名稱。

取而代之的是一個全球性的標誌器陣列:markers = new Array();

填寫時要添加標記您的數組:

$.each(data.results, function(k,e){ 
    var marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(e.lat,e.lng), 
     map: mapg, 
     title: 'Places', 
     id: k // you may want to give another value for easy recognition 
    }); 

    // you may add like markers["myPlace"] = marker; for easy recognition 
    markers.push(marker); 
}); 

然後你可以通過查看markers陣列得到一個標誌,並從地圖中移除:

markers["myPlace"].setMap(null); 
// or you can search by id by looking markers[index].id in a loop