当我在地图上添加注释时,我想突出显示它
我知道我必须使用
mapView1.selectAnnotation(annotation: MKAnnotation!, animated: Bool)
但我无法获取我的MKAnnotation对象,我所拥有的只是注释的位置(CLLocationCoordinate2D)。
我的问题是我如何才能知道他的位置?
编辑:理论上发现了解决方案,但有一个错误:
for annotation in self.mapView1.annotations as! [MKAnnotation] {
println(" ")
let annotLatitude = annotation.coordinate.latitude
let annotLongitude = annotation.coordinate.longitude
let eventLatitude = self.appDel!.lastEventCoords.latitude
let eventLongitude = self.appDel!.lastEventCoords.longitude
println("annotLatitude : (annotLatitude) , annotLongitude : (annotLongitude)")
println("eventLatitude : (eventLatitude) , eventLongitude : (eventLongitude)")
if (annotLatitude == eventLatitude && annotLongitude == eventLongitude) {
self.lastAnnotationAdded = annotation
println("Location equals")
self.mapView1.selectAnnotation(self.lastAnnotationAdded!, animated: true)
break
}
输出:
annotLatitude : 47.4799380142289 , annotLongitude : -0.44762351737708
eventLatitude : 47.4799380142289 , eventLongitude : -0.44762351737708
纬度和经度完全相同,但不执行“if”循环!有时它有效,但有时不行。怎么可能???
EDIT2:问题解决了
为了比较坐标,我不得不在使用func tronc()
答案 0 :(得分:1)
MKMapView有一个注释列表,它的template<class T, class A>
void operator==(const T &q, const A &w);
属性。因此,请查看这些内容,直到找到所需的内容(具有正确的error C2451: conditional expression of type 'void' is illegal c:\users\axiom\documents\visual studio 2013\projects\_test_template\_test_template\source.cpp 11 1 _test_Template
)。