0

尽管执行此操作的过程有据可查,但我无法解决此问题。

我要做的就是获取我刚刚创建注释的坐标,并让地图放大并以它为中心。我按照本教程进行了一些修改: 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。

帮助?

4

1 回答 1

1

didAddAnnotationViews根本没有被调用

在您的viewDidLoad实现中,添加以下行:

self.map.delegate = self;

看看这是否会改变事情。

于 2013-05-21T00:39:07.583 回答