2

一度に最大 4000 個のポリゴンを表示する必要があるアプリケーションを作成しています。中には数百の座標を持つものもあります。各ポリゴンには、mouseovermouseout、および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 がこの制限を使用しないようにしました。うまくいきましたが、私のアプリケーションにとっては実用的な解決策ではありません。

他の誰かがこの問題に遭遇しましたか?

4

0 に答える 0