0

我使用以下代码在 mapView 中创建了许多叠加层:

MKCircle *circle = [MKCircle circleWithCenterCoordinate:userLocation.coordinate radius:1000];
[mapView addOverlay:circle];

我只想在执行methode时一一删除:

-(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region

我的问题是:当我从一个地区出来时,不知道我经历了什么覆盖。知道如何删除这些吗?

谢谢你。

4

1 回答 1

0

您将要监控与您的圈子相对应的区域。

创建你的CLRegion

- (id)initCircularRegionWithCenter:(CLLocationCoordinate2D)center radius:(CLLocationDistance)radius identifier:(NSString *)identifier

监控CLLocationManager

- (void)startMonitoringForRegion:(CLRegion *)region

它将向您的侦听器发送事件,因此您可以在收到事件时添加/删除覆盖:

- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region

- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region

可能对您来说最简单的方法是存储MKCircle对象和相应CLRegion对象之间的关系,以便您可以适当地更新地图。

于 2012-11-14T19:32:58.073 回答