<commit_before>###Update 13.02.2012:###
Added support for cluster different groups of annotations.  
Implement the new `OCGrouping` protocol on your annotation class, set its grouping-tag and set the `clusterByGroupTag` property of your `OCMapView` to *true*.  
  

- - - -
  
#What is OCMapView?
**OpenClusterMapView** is a simple and easy to use extension of `MKMapView` for iOS.
If you have trouble to display a lot of annotations on the map, this class is for you.
It is written in *Objective-C* + *C* and works for all iOS applications.  

![OpenClusterMapView Logo](http://www.unet.univie.ac.at/~a0846794/OCMapView/open_cluster_mapview_off.png "OpenClusterMapView Turned off")
![OpenClusterMapView Logo](http://www.unet.univie.ac.at/~a0846794/OCMapView/open_cluster_mapview_on.png "OpenClusterMapView Turned on")  

#Background:
You may already encountered the problem when you adding a several hundred annotations the the `MKMapView` it will get laggy and everything but user friendly.
Many developers believe that iOS can't handle a huge amount of annotations on a `MKMapView` due the low memory capacities of iDevices. So they start to handle the annotation management themselves with pretty dumb filter methods which won't display all annotations and confuse users even more.  

The actual problem is not memory related. It rather occurs because *annotationViews* are `UIViews` and these are extremely slow. So if you scroll/zoom a `MKMapView` with many annotations, iOS has to redraw them all at once and that will take time.  

**OCMapView** combines multiple annotations in a specified range and displays them just as ***a single*** `annotationView` for the whole cluster. So you'll never have too many views which make your app slow and laggy. In addition to that forget to handle the annotations yourself! Just add them **all** to your **OCMapView** and it will do everything for you.
Even the iPhone 3G with iOS 3.1.x can handle a couple thousand annotations without lagging!

##Set up:
**OCMapView** automatically handles annotations and combines them to **clusters** for you. Just add the **OCMapView** folder to your project and you are good to go. Set the class of your `MapView` in the Interface Builder/Storyboard from **MKMapView** to **OCMapView** or create it manually in code like a regular `MKMapView`. Don't forget to link the `MapKit` and `CoreLocation` frameworks to your project and import `OCMapView.h` into the viewController you are working on.  
<commit_msg>Updated read me again.<commit_after>###Update 13.02.2012:###
Added support for cluster different groups of annotations.  
Implement the new `OCGrouping` protocol on your annotation class, set its grouping-tag and set the `clusterByGroupTag` property of your `OCMapView` to *true*. Take a look at the sample project to see it working.
  

- - - -
  
#What is OCMapView?
**OpenClusterMapView** is a simple and easy to use extension of `MKMapView` for iOS.
If you have trouble to display a lot of annotations on the map, this class is for you.
It is written in *Objective-C* + *C* and works for all iOS applications.  

![OpenClusterMapView Logo](http://www.unet.univie.ac.at/~a0846794/OCMapView/open_cluster_mapview_off.png "OpenClusterMapView Turned off")
![OpenClusterMapView Logo](http://www.unet.univie.ac.at/~a0846794/OCMapView/open_cluster_mapview_on.png "OpenClusterMapView Turned on")  

#Background:
You may already encountered the problem when you adding a several hundred annotations the the `MKMapView` it will get laggy and everything but user friendly.
Many developers believe that iOS can't handle a huge amount of annotations on a `MKMapView` due the low memory capacities of iDevices. So they start to handle the annotation management themselves with pretty dumb filter methods which won't display all annotations and confuse users even more.  

The actual problem is not memory related. It rather occurs because *annotationViews* are `UIViews` and these are extremely slow. So if you scroll/zoom a `MKMapView` with many annotations, iOS has to redraw them all at once and that will take time.  

**OCMapView** combines multiple annotations in a specified range and displays them just as ***a single*** `annotationView` for the whole cluster. So you'll never have too many views which make your app slow and laggy. In addition to that forget to handle the annotations yourself! Just add them **all** to your **OCMapView** and it will do everything for you.
Even the iPhone 3G with iOS 3.1.x can handle a couple thousand annotations without lagging!

##Set up:
**OCMapView** automatically handles annotations and combines them to **clusters** for you. Just add the **OCMapView** folder to your project and you are good to go. Set the class of your `MapView` in the Interface Builder/Storyboard from **MKMapView** to **OCMapView** or create it manually in code like a regular `MKMapView`. Don't forget to link the `MapKit` and `CoreLocation` frameworks to your project and import `OCMapView.h` into the viewController you are working on.  

{'fraction_non_alphanumeric': 0.06936187078874356, 'fraction_numerical': 0.009908838684106223, 'mean_word_length': 4.781214203894616, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '272159', 'n_tokens_mistral': 1409, 'n_tokens_neox': 1314, 'n_words': 708}