首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将MKUserLocation转换为CLLocation?

如何将MKUserLocation转换为CLLocation?
EN

Stack Overflow用户
提问于 2015-02-22 19:25:05
回答 3查看 2.5K关注 0票数 2

我需要一种将MKUserLocation转换为CLLocation的方法,这样我就可以使用distanceFromLocation方法查找用户位置和另一个预定义的CLLocation之间的距离。

EN

回答 3

Stack Overflow用户

发布于 2015-02-22 19:33:17

MKUserLocation具有属性位置,恰好是CLLocation类型。

请参阅参考文件/occ/instp/MKUserLocation/location

然而,有几件事你需要首先到位。

  • 您需要向用户请求许可才能使用它们的位置。这包括调用CLLocationManager的requestWhenInUseAuthorization和检查异步结果。
  • 将NSLocationWhenInUseUsageDescription条目添加到您的信息(在上面的链接中描述),以告诉用户您想要对信息做什么
  • 您很可能需要异步获取位置。为此,您的视图控制器需要实现MKMapViewDelegate,您将使用func mapView(mapView: MKMapView!,didUpdateUserLocation userLocation: MKUserLocation!)才能得到用户位置。
票数 4
EN

Stack Overflow用户

发布于 2015-06-10 08:00:29

我想你的MKUserLocation是从mapView得到的,对吗?

因此,您必须遵循以下步骤:

  1. 确保您具有显示用户位置的用户和系统权限。
  2. 在mapView上显示用户位置之后,将控制器设置为mapView委托。
  3. 实现该方法:- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation // Code - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { userLocation.location distanceFromLocation:_yourOtherLocation;}
票数 1
EN

Stack Overflow用户

发布于 2015-07-29 16:31:07

Xcode 6.4,对于iOS 8.4,启用了ARC

好的答案已经张贴在这里;然而,没有一个能迅速给出具体的例子。以下是一些需要记住的事情:

MKUserLocation类定义了标识用户当前位置的特定类型的注释。您不直接创建该类的实例。相反,您可以从应用程序中显示的地图视图的userLocation属性中检索现有的userLocation对象。

位置属性是只读的!

代码语言:javascript
复制
var location: CLLocation! { get }

因此,使用此属性可以直接使用distanceFromLocation:,但不要使用当前用户的位置,因为它显然将返回0米。您很可能需要初始化一个新的CLLocation来度量它。

代码语言:javascript
复制
func distanceFromLocation(_ location: CLLocation!) -> CLLocationDistance

希望这能有所帮助!干杯。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28662219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档