首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CLLocationManager返回错误的位置

CLLocationManager返回错误的位置
EN

Stack Overflow用户
提问于 2017-01-11 16:07:29
回答 1查看 1.1K关注 0票数 2

我使用CLLocationManager来检测当前用户的位置。这是我的密码:

代码语言:javascript
复制
- (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。我可以用这些恒定的速度和航向过滤所有这些“错误的动作”,但我不明白它为什么会这样工作。任何想法都很感激。

EN

回答 1

Stack Overflow用户

发布于 2017-01-11 16:38:10

假设“在+/- 1414.0m区域内随机移动”意味着“位置读数显示水平精度设置为1414.0":

您的设备无法获得GPS补丁。这可能是因为你的办公大楼里没有GPS。另外,您可能已经关闭了WiFi,因为在WiFi上,您应该能够获得更好的水平精度-高达+/- 65m。

请记住,有三个位置读数来源:

  • 电池塔
  • wifi接入点
  • 全球定位系统

当基站是唯一的源时,+/- 1414米是典型的情况。

使用WiFi接入点,您可以获得高达65m的准确性--注意,要使wifi三角测量工作,您需要( a)启用WiFi收音机--扫描接入点,以及( b)访问access数据库--以解析lat/long的访问点。如果存在临时连接或数据库服务器问题,您将无法使用WiFi AP三角剖分。

当通过全球定位系统获取位置读数时,你开始看到非负速度。

简单地说--也许你所需要的就是离开办公室:o)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41595497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档