如何在Mapkit中增加userLocation注释的半径



我的应用程序获得用户权限并将地图移动到该位置。默认情况下,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;
}

至于在"脉冲"与另一个注释相交时执行某些动画,则需要将其他注释位置传递到脉冲视图,并在运行动画时检查坐标。

最新更新