用户第一次尝试使用当前位置时,map.userslocation属性的坐标为0,0。下次加载包含地图的视图时,始终会找到用户位置。
我在viewDidLoad上将map.showsUserLocation属性设置为YES,当地图在屏幕上加载时,蓝点就在那里,但是当我尝试使用map.userlocation.coorinate获取坐标时,它们是0,0。
程序流程顺利进行 - (void)viewDidLoad: 1)将showUserLocation设置为YES 2)设置一个计时器,在6秒后调用方法,从map.userLocation属性中获取用户位置
- (void)getUsersLocation 1)打印出用户位置
第一次加载视图后,此过程运行良好,但第一次视图被加盖并且用户必须授予使用其位置的权限时坐标返回0,0
任何人都知道为什么会发生这种情况以及如何解决这个问题?
谢谢!
答案 0 :(得分:2)
而不是任意等待六秒钟,你应该实施CLLocationManagerDelegate
并注意何时
locationManager:didUpdateToLocation:fromLocation:
调用来为您提供第一个位置更新,这可能需要更多或更少的时间。
答案 1 :(得分:1)
David是对的,但我注意到我确实有时会使用位置0,0来调用该方法。您应该忽略任何此类呼叫,除非您认为您的应用可能正在非洲西海岸的海域使用。