我想以MKPinAnnotationView
编程方式打开标注。例如,我在地图上放了 10 个图钉,并想打开离我最近的一个图钉。我该怎么做呢?
Apple 为 指定了 'selected' 参数MKAnnotationView's
,但不鼓励直接设置(这不起作用,尝试过)。
其余的MKAnnotationView
只有一个 setHighlighted (相同的故事),并且可以ShowCallout
方法..
如果这可能的话,有什么提示吗?
我想以MKPinAnnotationView
编程方式打开标注。例如,我在地图上放了 10 个图钉,并想打开离我最近的一个图钉。我该怎么做呢?
Apple 为 指定了 'selected' 参数MKAnnotationView's
,但不鼓励直接设置(这不起作用,尝试过)。
其余的MKAnnotationView
只有一个 setHighlighted (相同的故事),并且可以ShowCallout
方法..
如果这可能的话,有什么提示吗?
在您的 mapViewController 中创建一个操作方法:
- (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])