我有一些相当大的多边形(我用来生成它们的 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 中……所有我可以使用的浏览器。