Loading...
Searching...
No Matches
NCClusterMapObjectController Class Reference

Groups IconMapObject instances into clusters depending on zoom and proximity. More...

#include <com/navigine/idl/objc/NCClusterMapObjectController.h>

Inherits NSObject.

Instance Methods

(BOOL) - addIconMapObject:
 Adds an icon map object to the cluster controller.
 
(BOOL) - removeIconMapObject:
 Removes an icon map object from the cluster controller.
 
(void) - clear
 Removes all icon map objects from the controller and destroys visible cluster markers.
 
(void) - setEnabled:
 Enables or disables clustering. Default: true.
 
(BOOL) - isEnabled
 Returns whether clustering is enabled.
 
(void) - setRadius:
 Cluster radius in density-independent pixels. Default: 40.
 
(float) - getRadius
 Returns cluster radius in density-independent pixels.
 
(BOOL) - setInteractive:
 Specifies whether cluster markers can be picked. Default: true.
 
(BOOL) - setClusterSize:height:
 Specifies the size of the default cluster icon in pixels.
 
(void) - addListener:
 Adds a listener for cluster lifecycle events ClusterMapObjectControllerListener.
 
(void) - removeListener:
 Removes a previously added listener.
 
(nonnull NSArray< NCClusterMapObject * > *) - getClusters
 Returns a snapshot of currently visible clusters.
 

Detailed Description

Groups IconMapObject instances into clusters depending on zoom and proximity.

Referenced from LocationWindow.

Register icons with addIconMapObject, then optionally customize cluster appearance in ClusterMapObjectControllerListener (onClusterCreated) and ClusterMapObjectListener (onClusterChanged).

Definition at line 26 of file NCClusterMapObjectController.h.

Method Documentation

◆ addIconMapObject:

- (BOOL) addIconMapObject: (nullable NCIconMapObject *) iconMapObject

Adds an icon map object to the cluster controller.

Parameters
iconMapObjectIcon to cluster IconMapObject. Must be added to the same LocationWindow via addIconMapObject.
Returns
true if the icon was added, false otherwise.

Swift code snippet:

let added1 = controller.add(clusterIcon1)
let added2 = controller.add(clusterIcon2)
print("Registered icons for clustering: \‍(added1), \‍(added2)")

Objective C code snippet:

BOOL added1 = [controller addIconMapObject:clusterIcon1];
BOOL added2 = [controller addIconMapObject:clusterIcon2];
NSLog(@"Registered icons for clustering: %d, %d", added1, added2);

◆ addListener:

- (void) addListener: (nullable id< NCClusterMapObjectControllerListener >) listener

Adds a listener for cluster lifecycle events ClusterMapObjectControllerListener.

Parameters
listenerListener instance.

Swift code snippet:

controller.add(listener)
print("Added cluster map object controller listener")

Objective C code snippet:

[controller addListener:listener];
NSLog(@"Added cluster map object controller listener");

◆ clear

- (void) clear

Removes all icon map objects from the controller and destroys visible cluster markers.

Swift code snippet:

controller.clear()
print("Cleared cluster controller")

Objective C code snippet:

[controller clear];
NSLog(@"Cleared cluster controller");

◆ getClusters

- (nonnull NSArray< NCClusterMapObject * > *) getClusters

Returns a snapshot of currently visible clusters.

Swift code snippet:

let clusters = controller.getClusters()
print("Visible clusters: \‍(clusters.count)")

Objective C code snippet:

NSArray<NCClusterMapObject *> *clusters = [controller getClusters];
NSLog(@"Visible clusters: %lu", (unsigned long)clusters.count);

◆ getRadius

- (float) getRadius

Returns cluster radius in density-independent pixels.

Swift code snippet:

let clusterRadius = controller.getRadius()
print("Cluster radius: \‍(clusterRadius)")

Objective C code snippet:

float clusterRadius = [controller getRadius];
NSLog(@"Cluster radius: %f", clusterRadius);

◆ isEnabled

- (BOOL) isEnabled

Returns whether clustering is enabled.

Swift code snippet:

let clusteringEnabled = controller.isEnabled()
print("Clustering is enabled: \‍(clusteringEnabled)")

Objective C code snippet:

BOOL clusteringEnabled = [controller isEnabled];
NSLog(@"Clustering is enabled: %d", clusteringEnabled);

◆ removeIconMapObject:

- (BOOL) removeIconMapObject: (nullable NCIconMapObject *) iconMapObject

Removes an icon map object from the cluster controller.

Parameters
iconMapObjectIcon to remove.
Returns
true if the icon was removed, false otherwise.

Swift code snippet:

let removed = controller.remove(clusterIcon1)
print("Removed icon from cluster controller: \‍(removed)")

Objective C code snippet:

BOOL removed = [controller removeIconMapObject:clusterIcon1];
NSLog(@"Removed icon from cluster controller: %d", removed);

◆ removeListener:

- (void) removeListener: (nullable id< NCClusterMapObjectControllerListener >) listener

Removes a previously added listener.

Parameters
listenerListener instance to remove.

Swift code snippet:

controller.remove(listener)
print("Removed cluster map object controller listener")

Objective C code snippet:

[controller removeListener:listener];
NSLog(@"Removed cluster map object controller listener");

◆ setClusterSize:height:

- (BOOL) setClusterSize: (float) width
height: (float) height 

Specifies the size of the default cluster icon in pixels.

Returns
true if the operation is successful, false otherwise.

Swift code snippet:

let sizeSuccess = controller.setClusterSize(32.0, height: 32.0)
print("Set default cluster icon size: \‍(sizeSuccess)")

Objective C code snippet:

BOOL sizeSuccess = [controller setClusterSizeWithWidth:32.0f height:32.0f];
NSLog(@"Set default cluster icon size: %d", sizeSuccess);

◆ setEnabled:

- (void) setEnabled: (BOOL) enabled

Enables or disables clustering. Default: true.

Swift code snippet:

controller.setEnabled(true)
print("Clustering enabled")

Objective C code snippet:

[controller setEnabled:YES];
NSLog(@"Clustering enabled");

◆ setInteractive:

- (BOOL) setInteractive: (BOOL) interactive

Specifies whether cluster markers can be picked. Default: true.

Returns
true if the operation is successful, false otherwise.

Swift code snippet:

let interactiveSuccess = controller.setInteractive(true)
print("Set cluster markers interactive: \‍(interactiveSuccess)")

Objective C code snippet:

BOOL interactiveSuccess = [controller setInteractive:YES];
NSLog(@"Set cluster markers interactive: %d", interactiveSuccess);

◆ setRadius:

- (void) setRadius: (float) radius

Cluster radius in density-independent pixels. Default: 40.

Swift code snippet:

controller.setRadius(40.0)
print("Set cluster radius to 40 px")

Objective C code snippet:

[controller setRadius:40.0f];
NSLog(@"Set cluster radius to 40 px");

The documentation for this class was generated from the following file: