かなり大きなポリゴンがいくつかあります (ポリゴンを生成するために使用する 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 に設定しようとしましたが、まったく同じラグが発生します。
トグル ボタンを数回クリックすると、極端な遅延が発生します。そしてブラウザがクラッシュします。これは、クロム、ファイアフォックス、つまりオペラで発生します...私が手に入れることができるすべてのブラウザ。