获取用户当前位置坐标:MKMapItem vs CLLocationManager
Getting user's current location coordinates: MKMapItem vs CLLocationManager
这是我的场景:我需要准时获取用户的当前位置,以便在 MKMapView
中向他们展示一组附近的兴趣点。我不需要跟踪用户的位置。我需要有人来澄清最好的方法应该是:
1) ASFAIK,是否可以通过调用 mapItemForCurrentLocation
获取当前位置。你得到一个 MKMapItem
对象,我认为这个调用不需要启用位置服务,但我不确定是否可以通过这种方式获取位置的坐标......是吗?
2) 启动 CLLocationManager
并监听位置更新。然后只取接收到的第一个位置并停止收听。
我需要这个才能为 iOS 7+
工作
谢谢
要使 MKMapView
对象显示用户位置,您必须请求对 iOS8 的授权(即在 CLLocationManager
对象上使用 requestWhenInUseAuthorization
)。
MKMapView
对象有一个 didUpdateUserLocation:
委托方法,您可以使用它接收用户位置更新,但这可能会反复触发,直到达到地图要求的精度 - 您可能需要忽略以后的更新取决于你在做什么。
根据您的情况,使用 CLLocationManger
可能会更好,然后在您修复了所需的准确性后停止请求更新。
这是我的场景:我需要准时获取用户的当前位置,以便在 MKMapView
中向他们展示一组附近的兴趣点。我不需要跟踪用户的位置。我需要有人来澄清最好的方法应该是:
1) ASFAIK,是否可以通过调用 mapItemForCurrentLocation
获取当前位置。你得到一个 MKMapItem
对象,我认为这个调用不需要启用位置服务,但我不确定是否可以通过这种方式获取位置的坐标......是吗?
2) 启动 CLLocationManager
并监听位置更新。然后只取接收到的第一个位置并停止收听。
我需要这个才能为 iOS 7+
工作谢谢
要使 MKMapView
对象显示用户位置,您必须请求对 iOS8 的授权(即在 CLLocationManager
对象上使用 requestWhenInUseAuthorization
)。
MKMapView
对象有一个 didUpdateUserLocation:
委托方法,您可以使用它接收用户位置更新,但这可能会反复触发,直到达到地图要求的精度 - 您可能需要忽略以后的更新取决于你在做什么。
根据您的情况,使用 CLLocationManger
可能会更好,然后在您修复了所需的准确性后停止请求更新。