0

我有一些相当大的多边形(我用来生成它们的 xml 文件是 400k,只是点数据)。

一旦用户通过单击按钮加载多边形,我将这些多边形存储在一个数组中。

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,即,opera 中……所有我可以使用的浏览器。

4

1 回答 1

1

您在每个函数调用上绑定点击事件,但之前绑定的点击仍然存在。

首先解绑点击:

$("#schoolDistButton").unbind('click')
于 2012-07-22T07:32:38.870 回答