NMCClusterer
@interface NMCClusterer<__covariant KeyType : NSObject <NMCClusteringKey> *>
: NSObject
겹치는 여러 마커를 클러스터링해서 하나의 마커로 보여주는 기능을 제공하는 클래스. 이 클래스의 인스턴스는 직접 생성할
수 없고 NMCBuilder 또는 NMCComplexBuilder 빌더 클래스를 이용해 생성해야 합니다. 여러 마커가 시각적으로
겹치는 상황을 방지하는 기본적인 기능만 필요하다면 NMCBuilder를, 복잡한 전략과 기능이 필요하다면
NMCComplexBuilder를 사용하는 것을 권장합니다.
NMCClusterer를 사용하려면 먼저 데이터의 키를 의미하는 NMCClusteringKey 프로토콜을 구현한 클래스를
정의해야 합니다. 이 클래스를 타입 파라메터로 지정해 NMCClusterer 인스턴스를 만들고,
add:Tag: 또는 addAll:을 호출해 데이터를 추가한 후 mapView를
이용해 지도 객체를 지정하면 지정한 데이터가 클러스터링되어 나타납니다.
-
클러스터를
mapView에 추가하거나, 클러스터가 추가된 지도 객체를 반환합니다. 지도에 추가된 상태가 아닐 경우nil을 반환합니다.Declaration
Objective-C
@property (nonatomic, weak, nullable) NMFMapView *mapView;Swift
weak var mapView: NMFMapView? { get set } -
데이터가 비어있는지 여부.
Declaration
Objective-C
@property (nonatomic, readonly) BOOL empty;Swift
var empty: Bool { get } -
데이터에
key가 포함되어있는지 여부.Declaration
Objective-C
- (BOOL)contains:(KeyType _Nonnull)key;Swift
func contains(_ key: KeyType) -> BoolParameters
key포함 여부를 확인할 키.
Return Value
포함되어있을 경우
YES, 그렇지 않을 경우NO. -
모든 데이터를 제거합니다.
Declaration
Objective-C
- (void)clear;Swift
func clear() -
모든 데이터를 제거합니다.
Declaration
Objective-C
- (void)clearWithCallback:(NMCClustererUpdateCallback _Nullable)callback;Swift
func clear(callback: NMCClustererUpdateCallback? = nil)Parameters
callback데이터 제거가 완료되면 호출될 콜백.
-
데이터를 추가합니다. 이 메서드를 여러 번 호출하면 지도에도 호출한 횟수만큼 나누어 반영됩니다. 따라서 여러 데이터를 한 번에 추가하고자 할 경우
addAll:을 사용하면 성능이 향상됩니다.Declaration
Objective-C
- (void)add:(KeyType _Nonnull)key:(NSObject *_Nullable)tag;Swift
func add(_ key: KeyType, _ tag: NSObject?)Parameters
key데이터의 키.
tag데이터의 태그.
-
데이터를 추가합니다. 이 메서드를 여러 번 호출하면 지도에도 호출한 횟수만큼 나누어 반영됩니다. 따라서 여러 데이터를 한 번에 추가하고자 할 경우
addAll:을 사용하면 성능이 향상됩니다.Declaration
Objective-C
- (void)add:(KeyType _Nonnull) key:(NSObject *_Nullable)tag Callback:(NMCClustererUpdateCallback _Nullable)callback;Swift
func add(_ key: KeyType, _ tag: NSObject?, callback: NMCClustererUpdateCallback? = nil)Parameters
key데이터의 키.
tag데이터의 태그.
callback데이터 추가가 완료되면 호출될 콜백.
-
여러 데이터를 한 번에 추가합니다. 데이터를 한 번에 추가할 경우 지도에도 한 번에 반영됩니다.
Declaration
Objective-C
- (void)addAll:(NSDictionary<KeyType, NSObject *> *_Nonnull)keyTagMap;Swift
func addAll(_ keyTagMap: [AnyHashable : NSObject])Parameters
keyTagMap키가 데이터의 키, 값이 데이터의 태그인
NSDictionary. -
여러 데이터를 한 번에 추가합니다. 데이터를 한 번에 추가할 경우 지도에도 한 번에 반영됩니다.
Declaration
Objective-C
- (void)addAll:(NSDictionary<KeyType, NSObject *> *_Nonnull)keyTagMap Callback:(NMCClustererUpdateCallback _Nullable)callback;Swift
func addAll(_ keyTagMap: [AnyHashable : NSObject], callback: NMCClustererUpdateCallback? = nil)Parameters
keyTagMap키가 데이터의 키, 값이 데이터의 태그인
NSDictionary.callback데이터 추가가 완료되면 호출될 콜백.
-
데이터를 제거합니다. 이 메서드를 여러 번 호출하면 지도에도 호출한 횟수만큼 나누어 반영됩니다. 따라서 여러 데이터를 한 번에 제거하고자 할 경우
removeAll:을 사용하면 성능이 향상됩니다.Declaration
Objective-C
- (void)remove:(KeyType _Nonnull)key;Swift
func remove(_ key: KeyType) -
데이터를 제거합니다. 이 메서드를 여러 번 호출하면 지도에도 호출한 횟수만큼 나누어 반영됩니다. 따라서 여러 데이터를 한 번에 제거하고자 할 경우
removeAll:을 사용하면 성능이 향상됩니다.Declaration
Objective-C
- (void)remove:(KeyType _Nonnull)key Callback:(NMCClustererUpdateCallback _Nullable)callback;Swift
func remove(_ key: KeyType, callback: NMCClustererUpdateCallback? = nil)Parameters
callback데이터 제거가 완료되면 호출될 콜백.
-
여러 데이터를 한 번에 제거합니다. 데이터를 한 번에 제거할 경우 지도에도 한 번에 반영됩니다.
Declaration
Objective-C
- (void)removeAll:(NSArray *_Nonnull)keys;Swift
func removeAll(_ keys: [Any])Parameters
keys제거할 키의 목록.
-
여러 데이터를 한 번에 제거합니다. 데이터를 한 번에 제거할 경우 지도에도 한 번에 반영됩니다.
Declaration
Objective-C
- (void)removeAll:(NSArray *_Nonnull)keys Callback:(NMCClustererUpdateCallback _Nullable)callback;Swift
func removeAll(_ keys: [Any], callback: NMCClustererUpdateCallback? = nil)Parameters
keys제거할 키의 목록.
callback데이터 제거가 완료되면 호출될 콜백.
Install in Dash
NMCClusterer Class Reference