让地图显示当前位置,要包支持:
locationManager = [[[CLLocationManager alloc] init] autorelease];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.distanceFilter = 1000.0f;
[locationManager startUpdatingLocation];
myMapView.showsUserLocation = YES;
在AnnotationView的各个代理里面要注意判断不要对location view进行操作。
判断代码如下:
//if 判断是否自己的注解
if ([[mkaview.annotation title] isEqualToString:@"Current Location"]) {
continue;
}
否则调用了loaction没有的方法程序会运行时crash。
当然,更科学的方法是:
if ([mkaview.annotation isKindOfClass:[MapAnnotation class]] == NO) {
continue;
}
对自己的annotation做操作的时候,排除掉其他的。
或者直接判断是否location:
if ([mkaview.annotation isKindOfClass:[MKUserLocation class]]) {
//...
continue;
}
后面这两种是正确的方法,第一种不可取。
个人觉得第二种最好。