2012-07-22 50 views
0

我有一些非常大的多邊形(我用來生成它們的xml文件是400k,只是點數據)。谷歌地圖V3自定義功能:togglePolygons()幾個切換後極端滯後

一旦用戶通過單擊按鈕加載多邊形,我將這些多邊形存儲在一個數組中。

var schoolDistPolygon = new google.maps.Polygon({ 
     paths: points, 
     strokeColor: "#FF0000", 
     strokeOpacity: 0.8, 
     strokeWeight: 3, 
     fillColor:color, 
     fillOpacity: 0.35 
    }); 
    schoolPolygons.push(schoolDistPolygon); 

然後我用這個方法切換多邊形的開啓和關閉:

function toggleOverlays (the_array, mode){ 
    var arr = eval(the_array); 
    if(mode=='hide'){ 
    for(i=0;i<arr.length;i++) 
    { 
     arr[i].setMap(null); 

    } 
     $("#schoolDistButton").bind('click',function(){toggleOverlays(the_array,'show')}); 
    } 

     if(mode=='show'){ 
    for(i=0;i<arr.length;i++) 
    { 
     arr[i].setMap(map); 

    } 
     $("#schoolDistButton").bind('click',function(){toggleOverlays(the_array,'hide')}); 
    } 


} 

我也嘗試了節能設置多邊形邊緣和填充不透明度爲0,而不是出右側刪除它們但我得到了完全相同的滯後。

單擊切換按鈕幾次後會出現極大的延遲。和瀏覽器崩潰。這發生在Chrome,Firefox,即歌劇......我可以得到所有瀏覽器。

回答

1

您綁定每個函數調用上的click事件,但先前綁定的點擊仍然存在。

先解除點擊:

$("#schoolDistButton").unbind('click') 
+0

,果然,原來如此。我之前沒有真正使用過綁定,現在我知道謝謝了! – 2012-07-22 07:51:51