我想获取当前设备位置和缩放地图到该坐标
我也不想在缩放到用户位置后停止位置管理器,以防止用户移动时更改地图可见区域。
...viewDidLoad...{
self.locationManager = CLLocationManager();
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
self.mapView.showsUserLocation = true;
self.locationManager.startUpdatingLocation();
}
func locationManager(manager:CLLocationManager, didUpdateLocations locations:[AnyObject]){
var newRegion = MKCoordinateRegion(center: self.mapView.userLocation.coordinate, span: MKCoordinateSpanMake(0.014, 0.014));
self.mapView.setRegion(newRegion, animated: true);
self.locationManager.stopUpdatingLocation();
}
此代码的问题在于此代码将地图视图移动到海洋,坐标有时无效(另一个大陆)
当我停止位置管理器地图视图停留在海洋中时: - /
制作我想要的东西的正确方法是什么?
答案 0 :(得分:0)
CLLocationManager并不总是保证单个委托调用的准确坐标(例如第一个委托调用时)。 newRegion可能只会为您提供缓存位置。
有关CLLocation的更多信息,请参阅以下答案:
How to stop multiple times method calling of didUpdateLocations() in ios