我使用CLLocationManager来检测当前用户的位置。这是我的密码:
- (void)viewDidLoad {
locationManager = [[CLLocationManager alloc] init];
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
locationManager.delegate = self;
if ([locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
[locationManager requestWhenInUseAuthorization];
}
[locationManager startUpdatingLocation];
}
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
curLocation = [locations lastObject];
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude: curLocation.coordinate.latitude longitude: curLocation.coordinate.longitude zoom:currentZoom];
[mapView animateToCameraPosition:camera];
}现在我正面临着这种奇怪的行为。我坐在办公室里,旁边有个设备,但CLLocationManager认为我在+/- 1414.0米范围内随机移动,速度为-1,航向= -1。我可以用这些恒定的速度和航向过滤所有这些“错误的动作”,但我不明白它为什么会这样工作。任何想法都很感激。
发布于 2017-01-11 16:38:10
假设“在+/- 1414.0m区域内随机移动”意味着“位置读数显示水平精度设置为1414.0":
您的设备无法获得GPS补丁。这可能是因为你的办公大楼里没有GPS。另外,您可能已经关闭了WiFi,因为在WiFi上,您应该能够获得更好的水平精度-高达+/- 65m。
请记住,有三个位置读数来源:
当基站是唯一的源时,+/- 1414米是典型的情况。
使用WiFi接入点,您可以获得高达65m的准确性--注意,要使wifi三角测量工作,您需要( a)启用WiFi收音机--扫描接入点,以及( b)访问access数据库--以解析lat/long的访问点。如果存在临时连接或数据库服务器问题,您将无法使用WiFi AP三角剖分。
当通过全球定位系统获取位置读数时,你开始看到非负速度。
简单地说--也许你所需要的就是离开办公室:o)
https://stackoverflow.com/questions/41595497
复制相似问题