지도

2011-09-11 7 views
2

컨텍스트 (A 위도/경도와 객체) 100 만 개 마커지도

구글지도 표시합니다. 우리는 클러스터링을 위해 Fluster 2를 사용합니다.

줌 레벨이 11에서 21 (21 개의 줌 레벨이 있고 21이 지상에 가장 가깝다 고 가정)의 경우 클러스터 마커 (클러스터 마커 만들기)의 계산 시간이 적당합니다.

문제는 내가 발생 :

응집 클러스터링은 아래 (사용자가 지상에서 축소) 줌 (11) 후 느린되고 있습니다. 약 1,000,000 개의 마커가 주어지면 빠른 계산 방법이나 처리가 필요합니다.

Btw, 나는 상업적인 솔루션에 관심이 없다.

+0

[모든 캡틴 제목과 관련하여이 문서를 읽으십시오.] (http://ux.stackexchange.com/q/11043) – Mat

답변

1

Fluster 2는 클라이언트 측 클러스터링 역할을하는 javascript입니까?

수백만 포인트를 사용하면 가능하면 서버 측 클러스터링 또는 사전 클러스터 지점을 미리 사용해야합니다.

이 항목은 간단한 그리드 클러스터링을 만들 수있는 많은 점은이 https://stackoverflow.com/questions/986852/clustering-coordinates-on-server-side

관련이있다. 구글 나는 C#을 http://kunuk.wordpress.com/2011/09/15/clustering-grid-cluster의 예제 코드와 그리드 클러스터링에 대한 블로그를 만든 http://code.google.com/intl/da-K/apis/maps/articles/toomanymarkers.html#gridbasedclustering

에서 언급 한 바와 같이 이 빠른 기술이다.

흥미로운 질문 :) jon kleinberg의 알고리즘 설계서에는 1.000.000 항목의 계산에 대한 언급이 O (n)에 약 1 초, O (nlogn)에 약 20 초를 제공합니다.

일부 트릭은 O (n)을 유지할 수없는 경우 계산에서 데이터의 일부만 사용하는 것으로 간주해야합니다.

+0

흥미롭지 만 r 트리를 사용할 수있을 때 쿼드 트리 또는 그리드가 필요합니까? 내 대답은 곡선에 관한 것이었다. – Bytemain

0

공간 인덱스를 사용하여 크기를 줄일 수 있습니다. 그런 다음 각 확대/축소 수준에서 마커를 개별적으로 가져올 수 있습니다. 필자는 많은 공간을 채우는 커브와 쿼드 키를 사용하여 PHP 스크립트를 작성했습니다. 나는 또한 상업적인 해결책을 가지고있다.

당신이 읽을 수 있습니다 시작하려면 :

더 정확한 검색이 필요한 경우에도이 옵션을 사용하여 모든 위치에서 가장 가까운 이웃 계산을 제거 할 수 있습니다.