MKAnnotations 已成功制作,但有时无法在 MKMapView 上呈现

Posted

技术标签:

【中文标题】MKAnnotations 已成功制作,但有时无法在 MKMapView 上呈现【英文标题】:MKAnnotations are being made successfully, however they sometimes fail to render on MKMapView 【发布时间】:2010-05-06 14:30:12 【问题描述】:

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

失败是完全随机的,这可能是我当天第 5 次点击“构建并运行”,或者第 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 始终显示的任何想法?

【问题讨论】:

【参考方案1】:

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

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

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

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

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

Optimizing CLLocationManager/CoreLocation to retrieve data points faster on the iPhone

【讨论】:

以上是关于MKAnnotations 已成功制作,但有时无法在 MKMapView 上呈现的主要内容,如果未能解决你的问题,请参考以下文章

MKAnnotations 未显示在地图上 iOS 9 / Swift 2.0

django 制作web网站,动态页面数据已更新,但是无法刷新,这是怎么回事?是页面缓存吗?

从图像创建视频并保存到相册

尽管 Prometheus 数据源已成功验证,但 Grafana 无法获取 Prometheus 指标

已成功与服务器建立连接,但是在登录前的握手期间发生错误。帮我看看是网站问题还是我电脑问题啊?

使用 Core Data 在 Swift 3 中保存和检索 MKAnnotations