让地图显示当前位置,要包支持:
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;
}
后面这两种是正确的方法,第一种不可取。
个人觉得第二种最好。
本文介绍了如何在地图应用中实现当前位置的显示,并确保AnnotationView的正确管理。通过CLLocationManager来获取并更新用户的位置,同时提供了正确的代码示例来避免在处理位置Annotation时导致程序崩溃的问题。
8066

被折叠的 条评论
为什么被折叠?



