【问题标题】:iPhone dev - Can't show user's current location on mapViewiPhone dev - 无法在 mapView 上显示用户的当前位置
【发布时间】:2011-08-04 16:55:46
【问题描述】:

我将 mapView 的 showUserLocation 属性设置为 YES,但它什么也没做。我能够使用 CLLocationManager 将地图置于用户当前位置的中心,但屏幕上没有图钉/点。如何在地图上标注用户的确切位置?

【问题讨论】:

  • 您是否对地图视图上的注释进行了处理?可能你不允许显示蓝点注释,我以前犯过这个错误。
  • 我是,但我评论了它,它仍然没有显示当前位置的任何标记。
  • 这是在模拟器还是设备上?在模拟器上,使用 showUserLocation 的“用户位置”将是加利福尼亚州库比蒂诺,但 CLLocationManager 无论如何都会返回真实位置。
  • 我一开始也是这么想的,但我在设备上试了一下,结果是一样的。此外,当我一直放大时,它在加利福尼亚也没有显示任何蓝点。
  • 属性设置在代码还是IB?确保 IBOutlet 已连接。如果您已实现 viewForAnnotation,请尝试将其注释掉或发布该代码。如果您实现了 MKMapViewDelegate 协议参考中“跟踪用户位置”下列出的所有委托方法(例如 didUpdateUserLocation),是否会调用它们中的任何一个(确保已设置地图视图的委托)?

标签: iphone android-mapview mkannotation


【解决方案1】:

这让我搞砸了好几次,但它很容易解决

问题是你的代码是:

 [self.mapView showUserLocation:YES];

应该是:

 [self.mapView setShowsUserLocation:YES]

还要确保你也设置了委托

【讨论】:

  • 无论如何我都在做 self.mapView.showUserLocation:YES,这相当于你给的第二个选项。无论如何感谢答案。
  • 根据我的经验,我总是不得不这样做,正如我提到的 setShowsUserLocation: 其次是 showUserLocation:
  • 糟糕,我本来打算写“self.mapView.showUserLocation = YES”。无论如何,我想通了(有点)。因为它是从 Xib 进来的,所以我只是在界面生成器中选中了“显示用户位置”的框。不知道我不能以编程方式完成它,但它现在可以工作了。
  • 进步就是进步,但我觉得一些委托回调可能在以后无法正常工作。可以在此处找到有关此问题的更多信息:stackoverflow.com/questions/2443342/… 还有为什么您使用 CLLocationManager 进行回调而不是这个:- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { }
【解决方案2】:

IN Nib name 你可以设置 showuserlocation 来标记 Mapview。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多