0

我正在使用 3.1.3 SDK 开发 iPhone 应用程序,我的应用程序找到用户当前位置,将其显示在 MKMapView 上,然后找到附近的位置并将它们呈现为 MKAnnotations。我的代码正在运行,但有时附近的注释不会出现在地图上。它们仍在制作中,因为我在控制台中看到了正确的数据(来自 NSLog,它在注释完成后运行)。

当它失败是完全随机的,它可能是我当天第五次点击“构建并运行”,或者第 500 次它似乎没有任何模式并且没有抛出任何类型的错误,它只是不会将注释添加到 MapView。

这是为每个附近位置调用以添加 MKAnnotation 的方法。

- (void)addPinsWithLocation:(NSDictionary *)spot
{
    CLLocationCoordinate2D location;
    location.longitude = [[spot objectForKey:@"spot_longitude"] doubleValue];
    location.latitude = [[spot objectForKey:@"spot_latitude"] doubleValue];

    PlaceMarks *placemark = [[PlaceMarks alloc] initWithCoordinate:location title:[spot objectForKey:@"spot_name"] subtitle:@""];
    NSLog(@"Adding Pin for Location: '%@' at %f, %f", [spot objectForKey:@"spot_name"], location.latitude, location.longitude);
    [mapView addAnnotation:placemark];
}

关于如何让 MKAnnotations 始终显示的任何想法?

4

1 回答 1

0

我目前正在制作一个想要显示所有可见注释的应用程序 - 我会尝试设置您的地图视图委托,然后实现以下方法:

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views

在这里,您可以找出添加了哪些注释,例如缩放地图以显示它们 - 此博客为您提供了一些源代码来执行此缩放以适应:

http://codisllc.com/blog/zoom-mkmapview-to-fit-annotations/

以下是一些改善您的位置信息的好技巧:

优化 CLLocationManager/CoreLocation 以在 iPhone 上更快地检索数据点

于 2010-05-14T11:28:30.947 回答