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;
  • 데이터가 비어있는지 여부.

    Declaration

    Objective-C

    @property (nonatomic, readonly) BOOL empty;
  • 데이터에 key가 포함되어있는지 여부.

    Declaration

    Objective-C

    - (BOOL)contains:(KeyType _Nonnull)key;

    Parameters

    key

    포함 여부를 확인할 키.

    Return Value

    포함되어있을 경우 YES, 그렇지 않을 경우 NO.

  • 모든 데이터를 제거합니다.

    Declaration

    Objective-C

    - (void)clear;
  • 모든 데이터를 제거합니다.

    Declaration

    Objective-C

    - (void)clearWithCallback:(NMCClustererUpdateCallback _Nullable)callback;

    Parameters

    callback

    데이터 제거가 완료되면 호출될 콜백.

  • 데이터를 추가합니다. 이 메서드를 여러 번 호출하면 지도에도 호출한 횟수만큼 나누어 반영됩니다. 따라서 여러 데이터를 한 번에 추가하고자 할 경우 addAll:을 사용하면 성능이 향상됩니다.

    Declaration

    Objective-C

    - (void)add:(KeyType _Nonnull)key:(NSObject *_Nullable)tag;

    Parameters

    key

    데이터의 키.

    tag

    데이터의 태그.

  • 데이터를 추가합니다. 이 메서드를 여러 번 호출하면 지도에도 호출한 횟수만큼 나누어 반영됩니다. 따라서 여러 데이터를 한 번에 추가하고자 할 경우 addAll:을 사용하면 성능이 향상됩니다.

    Declaration

    Objective-C

    - (void)add:(KeyType _Nonnull)
             key:(NSObject *_Nullable)tag
        Callback:(NMCClustererUpdateCallback _Nullable)callback;

    Parameters

    key

    데이터의 키.

    tag

    데이터의 태그.

    callback

    데이터 추가가 완료되면 호출될 콜백.

  • 여러 데이터를 한 번에 추가합니다. 데이터를 한 번에 추가할 경우 지도에도 한 번에 반영됩니다.

    Declaration

    Objective-C

    - (void)addAll:(NSDictionary<KeyType, NSObject *> *_Nonnull)keyTagMap;

    Parameters

    keyTagMap

    키가 데이터의 키, 값이 데이터의 태그인 NSDictionary.

  • 여러 데이터를 한 번에 추가합니다. 데이터를 한 번에 추가할 경우 지도에도 한 번에 반영됩니다.

    Declaration

    Objective-C

    - (void)addAll:(NSDictionary<KeyType, NSObject *> *_Nonnull)keyTagMap
          Callback:(NMCClustererUpdateCallback _Nullable)callback;

    Parameters

    keyTagMap

    키가 데이터의 키, 값이 데이터의 태그인 NSDictionary.

    callback

    데이터 추가가 완료되면 호출될 콜백.

  • 데이터를 제거합니다. 이 메서드를 여러 번 호출하면 지도에도 호출한 횟수만큼 나누어 반영됩니다. 따라서 여러 데이터를 한 번에 제거하고자 할 경우 removeAll:을 사용하면 성능이 향상됩니다.

    Declaration

    Objective-C

    - (void)remove:(KeyType _Nonnull)key;
  • 데이터를 제거합니다. 이 메서드를 여러 번 호출하면 지도에도 호출한 횟수만큼 나누어 반영됩니다. 따라서 여러 데이터를 한 번에 제거하고자 할 경우 removeAll:을 사용하면 성능이 향상됩니다.

    Declaration

    Objective-C

    - (void)remove:(KeyType _Nonnull)key
          Callback:(NMCClustererUpdateCallback _Nullable)callback;

    Parameters

    callback

    데이터 제거가 완료되면 호출될 콜백.

  • 여러 데이터를 한 번에 제거합니다. 데이터를 한 번에 제거할 경우 지도에도 한 번에 반영됩니다.

    Declaration

    Objective-C

    - (void)removeAll:(NSArray *_Nonnull)keys;

    Parameters

    keys

    제거할 키의 목록.

  • 여러 데이터를 한 번에 제거합니다. 데이터를 한 번에 제거할 경우 지도에도 한 번에 반영됩니다.

    Declaration

    Objective-C

    - (void)removeAll:(NSArray *_Nonnull)keys
             Callback:(NMCClustererUpdateCallback _Nullable)callback;

    Parameters

    keys

    제거할 키의 목록.

    callback

    데이터 제거가 완료되면 호출될 콜백.