JSONデータの円を示すD3を使用してSVGをレンダリングしています。ズームとドラッグをサポートしたいJSON構造は非常に大きくなる可能性があります。ここに私の主な問題があります:D3.jsでオンザフライでデータを減らす
- すべてのJSONエントリの円を追加することは実際には機能しません。ページにはDOM内に何千もの
<circle>
要素があるので、遅すぎるようになります。- を私はドラッグ機能で更新したデータセットの縮小コピーを保持:私はそれを解決していますどのよう
。 Iは、全データセットと現在の軸所与の表示されている中心座標を有する
reducedData
サークルにのみプッシュ越える
var reducedData = [];
:各ドラッグイベントで、私は、空のデータセットを宣言する。私はSVGを消去し、reducedData
を使ってそれを再描画します。私はすべてのズームイベントで同じ処理を行い、現在の拡大率を考慮して半径が5ピクセルを超える円をreducedData
に追加するだけです。
ページは非常に反応性があり、うまくいくように見えますが、非常に効率が悪く、これを行うには最良の方法ではないと私は確信しています。私の問題に対する代替の解決策は何ですか?ありがとう。
関連:[* "は、現在表示されているデータのみSVGノードをレンダリング?" *](/ Q/34653293)。 – altocumulus
あなたは 'svg'を捨ててキャンバスベースの[視覚化](https://bl.ocks.org/mbostock/d1f7b58631e71fbf9c568345ee04a60e)に移動したいと思うようなサウンドです。 – Mark