CI Status Version License Platform Swift Package Manager Carthage

---------------- ClusterKit is an elegant and efficiant clustering controller for maps. Its flexible architecture make it very customizable, you can use your own algorithm and even your own map provider. ## Features + Native supports of [**MapKit**](https://developer.apple.com/documentation/mapkit), [**GoogleMaps**](https://developers.google.com/maps/documentation/ios-sdk), [**Mapbox**](https://www.mapbox.com/ios-sdk/) and [**YandexMapKit**](https://tech.yandex.com/maps/mapkit/). + Comes with 2 clustering algorithms, a Grid Based Algorithm and a Non Hierarchical Distance Based Algorithm. + Annotations are stored in a [QuadTree](https://en.wikipedia.org/wiki/Quadtree) for efficient region queries. + Cluster center can be switched to **Centroid**, **Nearest Centroid**, **Bottom**. + Handles pin **selection** as well as **drag and dropping**. + Written in Objective-C with full **Swift** interop support. |MapKit|GoogleMaps|Mapbox| |---|---|---| |![MapKit](Resources/mapkit.gif)|![GoogleMaps](Resources/googlemaps.gif)|![Mapbox](Resources/mapbox.gif)| ## Installation & Usage **Please follow the [wiki](https://github.com/hulab/ClusterKit/wiki) for integration.** If you want to try it, simply run: ``` pod try ClusterKit ``` Or clone the repo and run `pod install` from the [Examples](Examples) directory first. > Provide the [Google API Key](https://console.developers.google.com) in the AppDelegate in order to try it with GoogleMaps. > Provide the [Mapbox Access Token](https://www.mapbox.com/studio/account/tokens/) in the AppDelegate in order to try it with Mapbox. > Provide the [Yandex API Key](https://developer.tech.yandex.ru/) in the AppDelegate in order to try it with YandexMapKit. ## Credits Assets by [Hugo des Gayets](https://dribbble.com/hugodesgayets). Thanks [@petropavel13](https://github.com/petropavel13) for the **YandexMapKit** integration. ## License ClusterKit is available under the MIT license. See the [LICENSE](LICENSE) file for more info.