【发布时间】:2017-07-03 21:20:20
【问题描述】:
我正在创建这个应用程序,它需要获取用户位置 - 一切正常,问题是,从接受使用位置服务到获得实际位置需要 5 秒 - 这是否正常? 我用过其他应用程序,速度要快得多..
我的代码如下所示:
override func viewDidLoad() {
super.viewDidLoad()
// Ask for Location-Authorisation from the User.
self.locationManager.requestWhenInUseAuthorization()
if CLLocationManager.locationServicesEnabled() {
locationManager.delegate = self
locationManager.requestLocation()
}
mapView.delegate = self
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let locValue: CLLocationCoordinate2D = manager.location!.coordinate
let initialLocation = CLLocation(latitude: locValue.latitude, longitude: locValue.longitude)
self.centerMapOnLocation(initialLocation)
}
func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
print("could not get location")
}
但是从应用程序获取位置放入centerMapOnLocation函数的时间似乎很长。在获取用户位置时会发生什么?我正在测试一个 wifi 连接,所以我知道这不是因为互联网很慢,或者它的连接不好......
有人有想法吗? :)
最好的问候!
【问题讨论】:
-
尝试设置精度并使用 locationManager.startUpdatingLocation()。我这样做,并在一秒钟内得到答案(在设备上)。
-
太棒了! locationManager.startUpdatingLocation() 成功了!我用 .requestLocation() 交换了它,现在它的工作就像一个魅力!谢谢@JensPeter - 想给你正确的答案,但我不能作为评论:/写一个答案,我会接受它:)
标签: swift mapkit cllocationmanager location-services