문제

덕분에 답변 나는 내 문제에 대한 임시 해결책을 생각해 냈습니다.

그러나 매일 증가하는 6000개의 포인트 목록으로 인해 속도가 점점 느려지고 있습니다.

타사 서비스*를 사용할 수 없으므로 나만의 솔루션을 찾아야 합니다.

내 요구 사항은 다음과 같습니다.

  1. 좌표 요구 사항의 클러스터링 의 확대/축소 수준으로 작업하려면 지도.

  2. 모든 클러스터를 캐시해야 함

  3. 이상적으로는 그럴 필요가 없습니다. 모든 클러스터(거리 계산) 새 점이 추가되면 점.

지금까지 나는 지도의 네 경계를 반환하고 지도의 볼 수 있는 섹션 내에 있는 모든 좌표를 반환하는 쿼드트리를 구현했습니다.

나에게 필요하고 이것이 쉽지 않다는 것을 알고 있는 것은 DB(postgres)에서 반환된 포인트 클러스터를 갖는 것입니다.

도움이 되었습니까?

해결책

현재 약 2,000 개의 마커를 동적 서버 측 클러스터링하고 있지만 최대 20,000 명까지 실행됩니다. 내 알고리즘에 대한 논의를 여기에서 볼 수 있습니다.

맵 클러스터링 알고리즘

사용자가 맵을 이동할 때마다 줌 레벨과 뷰의 경계를 서버에 대한 요청을 보낸다.

마커를 동적으로 필터링하고 검색 할 수 있기 때문에 클러스터를 캐시하지 않습니다. 그러나 사전 클러스터링 된 경우 매우 빠릅니다!

다른 팁

왜 즉시 "클러스터"해야 하는지 모르겠습니다.만족스러운 해상도로 각 확대/축소 수준을 요약합니다.

X, Y, 링크 개수의 단순한 구조를 갖습니다.누군가 링크를 추가하면 실제 위치(최대 확대/축소 수준 등)를 삽입한 다음 거기에서 시작됩니다.

결국 서로 다른 확대/축소 수준마다 하나씩 고유한 좌표 집합 10개(확대/축소 수준이 10개인 경우)가 있게 됩니다.

계산은 간단하며 한 번만 수행하면 됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top