虽然这样做的过程已有详细记录,但我无法解决此问题。
我想做的就是获取我刚刚创建了一个注释的坐标,让地图放大并居中。我按照本教程进行了一些修改: http://maybelost.com/2011/01/a-basic-mapview-and-annotation-tutorial/
MapViewAnnotation类只包含标题和坐标。 _detailItem只是一个将名称,纬度和经度保存为字符串的对象。
我有一张基本地图。我正在使用故事板(所以,ARC)。我有坐标。这是我的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self configureView];
// Set some coordinates for our position
CLLocationCoordinate2D location;
double thisLat = [_detailItem.EventLat doubleValue];
double thisLong = [_detailItem.EventLong doubleValue];
location.latitude = (double)thisLat;
location.longitude = (double)thisLong;
// Add the annotation to our map view
MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc] initWithTitle:_detailItem.EventName andCoordinate:location];
[self.map addAnnotation:newAnnotation];
}
// When a map annotation point is added, zoom to it
- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views
{
MKAnnotationView *annotationView = [views objectAtIndex:0];
id <MKAnnotation> mp = [annotationView annotation];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([mp coordinate], 1000, 1000);
[mv setRegion:region animated:YES];
[mv selectAnnotation:mp animated:YES];
}
呀。当我这样做时,注释会按预期显示,但地图不会居中或放大。在调试期间,我发现didAddAnnotationViews根本没有被调用!然而,我已经清楚地调用了addAnnotation。
帮助?
答案 0 :(得分:1)
didAddAnnotationViews
根本没有被调用
在viewDidLoad
实施中,添加以下行:
self.map.delegate = self;
看看是否会改变一切。