JSON 데이터의 원을 표시하는 D3을 사용하여 SVG를 렌더링하고 있습니다. 확대/축소 및 드래그를 지원하고 싶습니다. JSON 구조가 매우 커질 수 있습니다. 여기에 주요 문제가 있습니다 :D3.js에서 즉석에서 데이터 줄이기
- 모든 JSON 항목에 동그라미를 추가하는 것은 실제로 작동하지 않습니다. 페이지가 너무 느려져 DOM에 수천 개의
<circle>
요소가있을 수 있습니다. 나는 그것을 해결하는거야 어떻게
는 :
- 은 내가 드래그 기능에 업데이트 데이터 세트의 감소 사본을 보관.
var reducedData = [];
내가 설정 한 전체 데이터를 통해 이동 만 reducedData
에 중심이 현재 축 주어진 볼 수 있습니다 그 좌표가 원을 밀어 각 드래그 이벤트에, 나는 빈 데이터 세트를 선언합니다. 그런 다음 SVG를 지우고 reducedData
을 사용하여 다시 그립니다. 모든 줌 이벤트에서 동일한 과정을 수행하며, 현재 확대/축소 비율로 주어진 반경이 5보다 큰 원을 reducedData
에 추가하는 것만 추가합니다.
페이지가 매우 반응적이고 잘 작동하는 것처럼 보이지만, 매우 비효율적이며 이것이 최선의 방법은 아니라고 확신합니다. 내 문제에 대한 대체 솔루션은 무엇입니까? 감사.
'svg'를 버리고 '캔버스'기반의 [시각화] (https://bl.ocks.org/mbostock/d1f7b58631e71fbf9c568345ee04a60e)로 이동하고 싶을 것 같은데요. – Mark