我的应用程序获得用户权限并将地图移动到该位置。默认情况下,MapKit
在该位置添加一个蓝色图标,该图标正在生成一些脉冲
我四处搜索,但我找到了如何在userLocation
周围添加1000米的圆圈。我不想那样。你可以说我想自定义userLocation
默认annotation
。它产生的蓝色脉冲我想增加radius
。当这个蓝色脉冲击中自定义annotation
时,应该会触发一个方法。那么如何实现呢?
不幸的是,您不能简单地更改标准注释的行为;您需要自己接管注释视图的显示。
用户位置是类型为MKUserLocation
的地图注释。如果您实现了MKMapViewDelegate
方法viewForAnnotation
,并且地图显示了用户的位置,那么将使用MKUserLocation
的实例调用委托方法-您的责任是返回nil
,在这种情况下将显示标准注释视图,或者返回将显示的MKAnnotationView
的实例。
您可以对以下内容进行编码:
- (MKAnnotationView *)mapView:(MKMapView *)mapView
viewForAnnotation:(id<MKAnnotation>)annotation {
if ([annotation isKindOfClass:[MKUserLocation class]]) {
return [[MyPulsingViewAnnotation alloc] initWithUserLocation:annotation];
}
return nil;
}
至于在"脉冲"与另一个注释相交时执行某些动画,则需要将其他注释位置传递到脉冲视图,并在运行动画时检查坐标。