Package com.naver.maps.map.clustering
Class Clusterer<T extends ClusteringKey>
- java.lang.Object
-
- com.naver.maps.map.clustering.Clusterer<T>
-
- Type Parameters:
T- 키의 타입.
@UiThread public class Clusterer<T extends ClusteringKey> extends java.lang.Object겹치는 여러 마커를 클러스터링해서 하나의 마커로 보여주는 기능을 제공하는 클래스. 이 클래스의 인스턴스는 직접 생성할 수 없고Clusterer.Builder또는Clusterer.ComplexBuilder빌더 클래스를 이용해 생성해야 합니다. 여러 마커가 시각적으로 겹치는 상황을 방지하는 기본적인 기능만 필요하다면Clusterer.Builder를, 복잡한 전략과 기능이 필요하다면Clusterer.ComplexBuilder를 사용하는 것을 권장합니다.
Clusterer를 사용하려면 먼저 데이터의 키를 의미하는ClusteringKey인터페이스를 구현한 클래스를 정의해야 합니다. 이 클래스를 타입 파라메터로 지정해Clusterer인스턴스를 만들고,add(ClusteringKey, Object)또는addAll(Map)을 호출해 데이터를 추가한 후setMap(NaverMap)을 호출해 지도 객체를 지정하면 지정한 데이터가 클러스터링되어 나타납니다.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classClusterer.Builder<T extends ClusteringKey>Clusterer를 생성하는 빌더 클래스.static classClusterer.ComplexBuilder<T extends ClusteringKey>Clusterer를 생성하는 빌더 클래스.
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_ANIMATION_DURATION_MILLIS클러스터가 펼쳐지는/합쳐지는 애니메이션의 기본 지속 시간.static doubleDEFAULT_SCREEN_DISTANCE두 마커가 인접했을 때 클러스터링될 기본 화면상 거리.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(T key, java.lang.Object tag)데이터를 추가합니다.voidadd(T key, java.lang.Object tag, OnClustererUpdateCallback callback)데이터를 추가합니다.voidaddAll(java.util.Map<T,?> keyTagMap)여러 데이터를 한 번에 추가합니다.voidaddAll(java.util.Map<T,?> keyTagMap, OnClustererUpdateCallback callback)여러 데이터를 한 번에 추가합니다.voidclear()모든 데이터를 제거합니다.voidclear(OnClustererUpdateCallback callback)모든 데이터를 제거합니다.booleancontains(T key)데이터에key가 포함되어있는지 여부를 반환합니다.NaverMapgetMap()클러스터러가 추가된 지도 객체를 반환합니다.booleanisEmpty()데이터가 비어있는지 여부를 반환합니다.voidremove(T key)데이터를 제거합니다.voidremove(T key, OnClustererUpdateCallback callback)데이터를 제거합니다.voidremoveAll(java.util.Collection<T> keys)여러 데이터를 한 번에 제거합니다.voidremoveAll(java.util.Collection<T> keys, OnClustererUpdateCallback callback)여러 데이터를 한 번에 제거합니다.voidsetMap(NaverMap map)클러스터러를map에 추가합니다.
-
-
-
Field Detail
-
DEFAULT_SCREEN_DISTANCE
@Dimension(unit=0) public static final double DEFAULT_SCREEN_DISTANCE
두 마커가 인접했을 때 클러스터링될 기본 화면상 거리. DP 단위.- See Also:
- Constant Field Values
-
DEFAULT_ANIMATION_DURATION_MILLIS
public static final int DEFAULT_ANIMATION_DURATION_MILLIS
클러스터가 펼쳐지는/합쳐지는 애니메이션의 기본 지속 시간. 밀리초 단위.- See Also:
- Constant Field Values
-
-
Method Detail
-
getMap
@Nullable public NaverMap getMap()
클러스터러가 추가된 지도 객체를 반환합니다.- Returns:
- 클러스터러가 추가된 지도 객체. 지도에 추가된 상태가 아닐 경우
null.
-
setMap
public void setMap(@Nullable NaverMap map)클러스터러를map에 추가합니다.map에null을 지정하면 지도에서 제거됩니다.- Parameters:
map- 클러스터러를 추가할 지도 객체.
-
isEmpty
public boolean isEmpty()
데이터가 비어있는지 여부를 반환합니다.- Returns:
- 비어있을 경우
true, 그렇지 않을 경우false.
-
contains
public boolean contains(@NonNull T key)데이터에key가 포함되어있는지 여부를 반환합니다.- Parameters:
key- 포함 여부를 확인할 키.- Returns:
- 포함되어있을 경우
true, 그렇지 않을 경우false.
-
clear
public void clear()
모든 데이터를 제거합니다.
-
clear
public void clear(@Nullable OnClustererUpdateCallback callback)모든 데이터를 제거합니다.- Parameters:
callback- 데이터 제거가 완료되면 호출될 콜백.
-
add
public void add(@NonNull T key, @Nullable java.lang.Object tag)데이터를 추가합니다. 이 메서드를 여러 번 호출하면 지도에도 호출한 횟수만큼 나누어 반영됩니다. 따라서 여러 데이터를 한 번에 추가하고자 할 경우addAll(Map)을 사용하면 성능이 향상됩니다.- Parameters:
key- 데이터의 키.tag- 데이터의 태그.
-
add
public void add(@NonNull T key, @Nullable java.lang.Object tag, @Nullable OnClustererUpdateCallback callback)데이터를 추가합니다. 이 메서드를 여러 번 호출하면 지도에도 호출한 횟수만큼 나누어 반영됩니다. 따라서 여러 데이터를 한 번에 추가하고자 할 경우addAll(Map, OnClustererUpdateCallback)을 사용하면 성능이 향상됩니다.- Parameters:
key- 데이터의 키.tag- 데이터의 태그.callback- 데이터 추가가 완료되면 호출될 콜백.
-
addAll
public void addAll(@NonNull java.util.Map<T,?> keyTagMap)여러 데이터를 한 번에 추가합니다. 데이터를 한 번에 추가할 경우 지도에도 한 번에 반영됩니다.- Parameters:
keyTagMap- 키가 데이터의 키, 값이 데이터의 태그인Map.
-
addAll
public void addAll(@NonNull java.util.Map<T,?> keyTagMap, @Nullable OnClustererUpdateCallback callback)여러 데이터를 한 번에 추가합니다. 데이터를 한 번에 추가할 경우 지도에도 한 번에 반영됩니다.- Parameters:
keyTagMap- 키가 데이터의 키, 값이 데이터의 태그인Map.callback- 데이터 추가가 완료되면 호출될 콜백.
-
remove
public void remove(@NonNull T key)데이터를 제거합니다. 이 메서드를 여러 번 호출하면 지도에도 호출한 횟수만큼 나누어 반영됩니다. 따라서 여러 데이터를 한 번에 제거하고자 할 경우removeAll(Collection)을 사용하면 성능이 향상됩니다.- Parameters:
key- 데이터의 키.
-
remove
public void remove(@NonNull T key, @Nullable OnClustererUpdateCallback callback)데이터를 제거합니다. 이 메서드를 여러 번 호출하면 지도에도 호출한 횟수만큼 나누어 반영됩니다. 따라서 여러 데이터를 한 번에 제거하고자 할 경우removeAll(Collection, OnClustererUpdateCallback)을 사용하면 성능이 향상됩니다.- Parameters:
key- 데이터의 키.callback- 데이터 제거가 완료되면 호출될 콜백.
-
removeAll
public void removeAll(@NonNull java.util.Collection<T> keys)여러 데이터를 한 번에 제거합니다. 데이터를 한 번에 제거할 경우 지도에도 한 번에 반영됩니다.- Parameters:
keys- 제거할 키의 목록.
-
removeAll
public void removeAll(@NonNull java.util.Collection<T> keys, @Nullable OnClustererUpdateCallback callback)여러 데이터를 한 번에 제거합니다. 데이터를 한 번에 제거할 경우 지도에도 한 번에 반영됩니다.- Parameters:
keys- 제거할 키의 목록.callback- 데이터 제거가 완료되면 호출될 콜백.
-
-