1
我在我的应用程序中使用FBAnnotationClustering
cocoa pod库来执行聚类。在这removeAllAnnotation
方法是只在Objective-C中可用,但不是在迅速3.所以我发布迅捷版本,以帮助像我这样的人。请在下面看到我自己的答案。FBAnnotationClustering在swift中删除注释
我在我的应用程序中使用FBAnnotationClustering
cocoa pod库来执行聚类。在这removeAllAnnotation
方法是只在Objective-C中可用,但不是在迅速3.所以我发布迅捷版本,以帮助像我这样的人。请在下面看到我自己的答案。FBAnnotationClustering在swift中删除注释
FBClusteringManager.swift:
open func removeAnnotations() {
if tree == nil {
return
}
lock.lock()
for annotation: MKAnnotation in allAnnotations() {
tree!.remove(annotation)
}
lock.unlock()
}
FBQuadTree.swift
func remove(_ annotation: MKAnnotation) -> Bool {
return self.remove(annotation, from: rootNode!)
}
func remove(_ annotation: MKAnnotation, from node: FBQuadTreeNode) -> Bool {
if !FBQuadTreeNode.FBBoundingBoxContainsCoordinate(node.boundingBox!, coordinate: annotation.coordinate) {
return false
}
do {
if let index = node.annotations.index(where: {self.equate(lhs: $0, rhs: annotation)}) {
node.annotations.remove(at: index)
node.count -= 1
}
} catch {
return false
}
if let northEast = node.northEast {
if self.remove(annotation, from: northEast) {
return true
}
}
if let northWest = node.northWest {
if self.remove(annotation, from: northWest) {
return true
}
}
if let southEast = node.southEast {
if self.remove(annotation, from: southEast) {
return true
}
}
if let southWest = node.southWest {
if self.remove(annotation, from: southWest) {
return true
}
}
return false
}
func equate(lhs: MKAnnotation, rhs: MKAnnotation) -> Bool{
return lhs.coordinate.latitude == rhs.coordinate.latitude
&& lhs.coordinate.longitude == rhs.coordinate.longitude
}
ü可以名为.zip整个LIB? – yerpy