PinFloyd
Description
MapKit annotations clustering for iOS.
Usage
Create an instance of ClusteringManager
:
let clusteringManager = ClusteringManager()
Add annotations:
clusteringManager.add(annotations: annotations)
Replace annotations:
clusteringManager.replace(annotations: annotations)
Render annotations on region change:
// MKMapViewDelegate
func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) {
clusteringManager.renderAnnotations(onMapView: mapView)
}
Reuse annotation view:
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
switch annotation {
case let annotation as ClusterAnnotation:
let id = ClusterAnnotationView.identifier
var clusterView = mapView.dequeueReusableAnnotationView(withIdentifier: id)
if clusterView == nil {
clusterView = ClusterAnnotationView(annotation: annotation, reuseIdentifier: id)
} else {
clusterView?.annotation = annotation
}
return clusterView
default:
// return annotation view
}
Installation
PinFloyd is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'PinFloyd'
PinFloyd is also available through Carthage. To install just write into your Cartfile:
github "vadymmarkov/PinFloyd"
PinFloyd can also be installed manually. Just download and drop Sources
folders in your project.
Author
Vadym Markov, [email protected]
Credits
This library was originally done at Hyper, a digital communications agency with a passion for good code and delightful user experiences.
Contributing
Check the CONTRIBUTING file for more info.
License
PinFloyd is available under the MIT license. See the LICENSE file for more info.