如何以编程方式打开调用MKAnnotationView? (iPhone,MapKit)

我想以编程方式打开MKPinAnnotationView的标注。 例如,我在地图上放下10个针脚,并且想打开离我最近的那个针脚。 我怎么去做这个?

苹果已经为MKAnnotationView's指定了“selected”参数,但不鼓励直接设置它(这是行不通的,试过了)。

对于其余的MKAnnotationView只有一个高亮的( 同样的故事 ),并且可以ShowCallout方法。

任何提示,如果这是可能的呢?

在你的mapViewController中创build一个动作方法:

 - (void)openAnnotation:(id)annotation { //mv is the mapView [mv selectAnnotation:annotation animated:YES]; } 

然后,您可以根据当前位置确定最接近的注释,并在数组中使用注释。

 [mv annotations]; 

一旦计算出最接近的注释,请致电:

 [self openAnnotation:closestAnnotation]; 

mapView应自动滚动以将注释放置在显示区域的中心。

在swift 3中更新为:

 func openAnnotation(annotation: MkAnnotation) { _ = [mapView .selectAnnotation(annotation, animated: true)] } 

并可以使用任何注释来调用(这将打开注释标注视图并尝试将注释集中在地图上)

例如,在假设的注释列表中使用第二个注释。

 openAnnotation(annotation: mapView.annotations[1])