2008-12-02 3 views
4

위치를 저장하는 많은 엔티티 그룹을 다루고 있습니다. 지도에 표시됩니다. 더 높은 위치에서 볼 때 한 엔티티에 가까이있는 엔티티를 그룹화하는 효율적인 방법을 생각해냅니다. 따라서 예를 들어, 매우 높으면 내려다 볼 때 영역에 밀접하게 위치한 엔티티 그룹을 나타내는 엔티티 하나가 표시됩니다. 가깝게 확대하면 엔티티가 포함 된 엔티티로 분리됩니다.빠른 엔티티 그룹화 (위치 별) 알고리즘

이렇게하는 효율적인 알고리즘이 있습니까? 나는 높이를 기준으로 한 뷰를 격자로 그리거나 위치를 기반으로 그리드 박스로 엔티티를 떨어 뜨려서 상자 점을 렌더링하는 것에 대해 생각했습니다. 내 유일한 관심사는 모든 엔터티가 해당 상자의 오른쪽 위에있는 경우 해당 엔터티 그룹을 나타내는 대신 엔터티를 가운데에 배치 할 수 있습니다.

어떤 생각이나 아이디어가 있습니까?

답변

1

나는 당신이 찾고있는 것이 "클러스터링 알고리즘"이라고 믿습니다. 수많은 이용 가능합니다. 좋은 시작은 K-means Algorithm 일 수 있습니다. 궁극적으로 그것은 당신이 어떤 종류의 계층 적 클러스터링 알고리즘을 원하는 것처럼 들리지만.

1

엔티티 그룹에 엔티티를 사전 할당하거나 특정 "시야"의 모든 엔티티를 자동으로 "그룹"에 넣는다면 엔티티 그룹에 "위치"를 할당 할 수 있습니다 "질량 중심"알고리즘, 효과적으로 위도는 모든 포함 된 위도의 평균이며 경도에 대해서도 동일합니다 ... 두 차원 모두에 대해 셈을 추가하고 나누십시오 ...

원한다면 그룹화를 "만드는"알고리즘을 사용하면 엔티티가 속해야하는 두 개 이상의 잠재 그룹 중 어느 것을 결정할 것인지에 대한 몇 가지 비즈니스 규칙을 지정해야합니다. 높이에서 "보기"에 두 개의 후보 그룹이있는 경우 계산을하고있다.