一度に最大 4000 個のポリゴンを表示する必要があるアプリケーションを作成しています。中には数百の座標を持つものもあります。各ポリゴンには、mouseover
、mouseout
、およびdoubleclick
インフォボックス ラベルのイベントが必要です。
私は当初、IE 8 の JavaScript ステートメント制限で問題に遭遇しました。IE は、JavaScript が 1 つの実行ブロックで 5,000,000 個の VM ステートメントを処理するように制限しているようです。スクリプトが実行されます。)"setTimeout"
コードに JavaScript ステートメントを配置し、処理をチャンクに分割することで、この問題を回避しました。スクリプトは、醜いエラーに遭遇することなく、妥当な時間内に完了するまで実行されます。
しかし、私が今抱えている問題は、ポリゴンが既に構築されて表示された後に発生します。その後、ユーザーがズームしようとすると、IE で 5,000,000 ステートメントの制限を超えます。しかし、この場合、Google Maps API コードの実行中に制限に達し、制御ができず、setTimeouts に入れたり、チャンクに分割したりできません。
Chrome と Firefox では、まったく問題はなく、ポリゴンは驚くほど速く、数秒以内に読み込まれます。パンとズームも同様に問題ありません。
私が試したこと:
1) JavaScript ステートメントの量を減らす。コードをよりスリムにしようとしました。しかし、これは実際には Google Maps API コード内のポリゴンの再描画で発生しているため、とにかく影響があるかどうかはわかりません.
2) 精度の低いポリゴンを必要とすることで、ポリゴンあたりのポイント数を減らします。これは少し役に立ちましたが、問題は解決しませんでした。
3) IE の "MaxScriptStatements" レジストリ エントリを変更して、IE がこの制限を使用しないようにしました。うまくいきましたが、私のアプリケーションにとっては実用的な解決策ではありません。
他の誰かがこの問題に遭遇しましたか?