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 指标