Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hulab/ClusterKit

An iOS map clustering framework targeting MapKit, Google Maps and Mapbox.
https://github.com/hulab/ClusterKit

cluster googlemaps ios mapkit

Last synced: 6 days ago
JSON representation

An iOS map clustering framework targeting MapKit, Google Maps and Mapbox.

Awesome Lists containing this project

README

        





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.