0

Flex 3.5 で heatMap を使用していますが、マップに 3.000 から 10.000 のマーカーを設定しようとしているため、パフォーマンスに大きな問題があります。マップがレンダリング プロセスを開始した時点で、ブラウザは折りたたまれます。

私が使用している実装は、「flex epiphanies」によって作成された GoogleMpas のもので、http: //sunild.com/proto/Earthquakes2/Earthquakes.htmlをベースとして使用しました。

基本的に、私の実装は、サーバー側で ZipCode latLon ジェネレーターを呼び出して、表示する必要があるすべてのレジストリの latLon を計算するサービスを呼び出します。これは、大きな配列 (3.000 から 10.000 アイテムの間) を返します。すべてのマークを表示する必要があります。

私が抱えている問題は、呼び出しているサービスが非常に高速であるため、マップ内のアイテムをレンダリングすることです。

それがヒートマップを実装する最良の方法であるかどうかはわかりませんが、マーカーの数が 3.000 を超えた場合、実際には効率的ではないと確信しています。

誰かが私に提案や別のヒートマップの実装を与えることができれば、あなたのサポートに感謝します.3

4

1 に答える 1

0

すべてのマークを表示する必要があると言うとき、正確にはどういう意味ですか?あなたが構築しようとしているこのことは、おそらく2種類の最適化に役立つでしょう。

1)サーバー側でできることを集約します。サーバーがおそらくより速くそれを行うことができるとき、フラッシュするためにそれほど多くの処理を残す必要はありません。文字通りすべてのポイントを表示する必要がなく、ヒートマップ自体が必要な場合は、すでに集計されたマーカーカウントの配列、おそらく数緯度/長さの正方形の範囲の「チャンク」を取得するように変更できるかどうかを確認してください。各ポイントについて特定の種類の情報を表示していない場合は、実際に「すべてのマークを表示する」必要はないと思います。制御できないサービスからデータを直接引き出す場合は、データをフラッシュに渡す前に、データを集約するためだけに単純な中間層を作成することができます。

2)ヒートマップ機能を最適化します。十分なActionscriptを知っている場合は、ヒートマップコードを純粋なAS3に移植することをお勧めします。複雑すぎない場合は、プロジェクト全体を移植することをお勧めします。10,000ポイントの場合、Flexフレームワークが飲み込む多くのリソースが必要になります。あなたがクレイジーなアルゴリズム主義者なら、おそらく他のいくつかの最適化の方法を目にするでしょうが、そうでなければ、Grant Skinner(http://gskinner.com/blog)による多くの投稿を読んだだけです。なぜなら、アクションスクリプトの最適化がすべてだからです。その男は今まで話します。

私は数千から数十万の範囲のポイントを処理しなければならない同様のことをしています、そしてこれは私がとるアプローチです。

于 2010-12-21T05:04:35.127 に答える