forked from applidium/ADClusterMapView
-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Description
https://www.youtube.com/watch?v=Ud-d4giz_4A
You can see the video, these are 2 red and 1 green annotation I want to show you.
when I drag them to off the screen, and drag them back, they may disappear or swap the other annotation. it happens very often.
My DB has about few hundred annotation. Is my implementation problem or the library bug?
` func removeAllPin(){
mapView_.removeAnnotations(pin_mcs_)
mapView_.removeAnnotations(pin_mcp_)
mapView_.removeAnnotations(pin_pcs_)
mapView_.removeAnnotations(pin_pcp_)
mapView_.removeAnnotations(pin_petrol_)
mapView_.removeAnnotations(pin_speedingCamera_)
pin_mcs_.removeAll()
pin_mcp_.removeAll()
pin_pcs_.removeAll()
pin_pcp_.removeAll()
pin_petrol_.removeAll()
pin_speedingCamera_.removeAll()
}
func addAllPin(){
var tempArray:[MKAnnotation] = []
if(toggle_pin_mcs_.selected){
tempArray += pin_mcs_ as [MKAnnotation]
}
if(toggle_pin_mcp_.selected){
tempArray += pin_mcp_ as [MKAnnotation]
}
if(toggle_pin_pcs_.selected){
tempArray += pin_pcs_ as [MKAnnotation]
}
if(toggle_pin_pcp_.selected){
tempArray += pin_pcp_ as [MKAnnotation]
}
if(toggle_pin_petrol_.selected){
tempArray += pin_petrol_ as [MKAnnotation]
}
if(toggle_pin_speedingCamera_.selected){
tempArray += pin_speedingCamera_ as [MKAnnotation]
}
mapView_.addClusteredAnnotations(tempArray)
}
func mapView(mapView: TSClusterMapView!, viewForClusterAnnotation annotation: MKAnnotation!) -> MKAnnotationView! {
var view:MyClusterAnnotationView? = self.mapView_.dequeueReusableAnnotationViewWithIdentifier(NSStringFromClass(MyClusterAnnotationView.self).componentsSeparatedByString(".").last!) as? MyClusterAnnotationView
if(view == nil){
view = MyClusterAnnotationView(annotation: annotation, reuseIdentifier: NSStringFromClass(MyClusterAnnotationView.self).componentsSeparatedByString(".").last!)
}
return view;
}
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
var view:MKAnnotationView?
if (annotation is PinMcsAnnotation) {
view = self.mapView_.dequeueReusableAnnotationViewWithIdentifier(NSStringFromClass(PinMcsAnnotation.self).componentsSeparatedByString(".").last!)
if(view == nil){
view = MKAnnotationView(annotation: annotation, reuseIdentifier: NSStringFromClass(PinMcsAnnotation.self).componentsSeparatedByString(".").last!)
}
view!.image = UIImage(named: "map_pin_mcs")
view?.canShowCallout = false
view?.centerOffset = CGPointMake(view!.centerOffset.x, -view!.frame.size.height/2)
}
else if (annotation is PinMcpAnnotation) {
view = self.mapView_.dequeueReusableAnnotationViewWithIdentifier(NSStringFromClass(PinMcpAnnotation.self).componentsSeparatedByString(".").last!)
if(view == nil){
view = MKAnnotationView(annotation: annotation, reuseIdentifier: NSStringFromClass(PinMcpAnnotation.self).componentsSeparatedByString(".").last!)
}
view!.image = UIImage(named: "map_pin_mcp")
view?.canShowCallout = false
view?.centerOffset = CGPointMake(view!.centerOffset.x, -view!.frame.size.height/2)
}
else if (annotation is PinPcsAnnotation) {
view = self.mapView_.dequeueReusableAnnotationViewWithIdentifier(NSStringFromClass(PinPcsAnnotation.self).componentsSeparatedByString(".").last!)
if(view == nil){
view = MKAnnotationView(annotation: annotation, reuseIdentifier: NSStringFromClass(PinPcsAnnotation.self).componentsSeparatedByString(".").last!)
}
view!.image = UIImage(named: "map_pin_pcs")
view?.canShowCallout = false
view?.centerOffset = CGPointMake(view!.centerOffset.x, -view!.frame.size.height/2)
}
else if (annotation is PinPcpAnnotation) {
view = self.mapView_.dequeueReusableAnnotationViewWithIdentifier(NSStringFromClass(PinPcpAnnotation.self).componentsSeparatedByString(".").last!)
if(view == nil){
view = MKAnnotationView(annotation: annotation, reuseIdentifier: NSStringFromClass(PinPcpAnnotation.self).componentsSeparatedByString(".").last!)
}
view!.image = UIImage(named: "map_pin_pcp")
view?.canShowCallout = false
view?.centerOffset = CGPointMake(view!.centerOffset.x, -view!.frame.size.height/2)
}
else if (annotation is PinPetrolAnnotation) {
view = self.mapView_.dequeueReusableAnnotationViewWithIdentifier(NSStringFromClass(PinPetrolAnnotation.self).componentsSeparatedByString(".").last!)
if(view == nil){
view = MKAnnotationView(annotation: annotation, reuseIdentifier: NSStringFromClass(PinPetrolAnnotation.self).componentsSeparatedByString(".").last!)
}
view!.image = UIImage(named: "map_pin_petrol")
view?.canShowCallout = false
view?.centerOffset = CGPointMake(view!.centerOffset.x, -view!.frame.size.height/2)
}
else if (annotation is PinSpeedingCameraAnnotation) {
view = self.mapView_.dequeueReusableAnnotationViewWithIdentifier(NSStringFromClass(PinSpeedingCameraAnnotation.self).componentsSeparatedByString(".").last!)
if(view == nil){
view = MKAnnotationView(annotation: annotation, reuseIdentifier: NSStringFromClass(PinSpeedingCameraAnnotation.self).componentsSeparatedByString(".").last!)
}
view!.image = UIImage(named: "map_pin_speeding_camera")
view?.canShowCallout = false
view?.centerOffset = CGPointMake(view!.centerOffset.x, -view!.frame.size.height/2)
}
return view;
}
func mapView(mapView: TSClusterMapView!, shouldForceSplitClusterAnnotation clusterAnnotation: ADClusterAnnotation!) -> Bool {
return true
}
func mapView(mapView: TSClusterMapView!, shouldRepositionAnnotations annotations: [ADClusterAnnotation]!, toAvoidClashAtCoordinate coordinate: CLLocationCoordinate2D) -> Bool {
return true
}
`
Metadata
Metadata
Assignees
Labels
No labels