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 に設定しようとしましたが、まったく同じラグが発生します。

トグル ボタンを数回クリックすると、極端な遅延が発生します。そしてブラウザがクラッシュします。これは、クロム、ファイアフォックス、つまりオペラで発生します...私が手に入れることができるすべてのブラウザ。

4

1 に答える 1

1

すべての関数呼び出しでクリック イベントをバインドしますが、以前にバインドされたクリックはまだ存在します。

最初にクリックのバインドを解除します。

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