我在使用移动网络定位准确性方面存在问题。
以下是我的问题
有时,在蜂窝网络(3G)中,位置准确性非常完美
有时位置准确性并不完美它的一英里差异。
对于WiFi,它的工作非常完美。
以下是我的代码
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
[locationManager startUpdatingLocation];
请问我的代码有什么问题。
答案 0 :(得分:1)
答案 1 :(得分:0)
这是因为您无法通过卫星(3G或4G)强制设备位置
您(应用)只能访问设备获取的位置(如果有权限)。
当您具有最高准确度kCLLocationAccuracyBestForNavigation
时,它会尝试获得最高准确度(第一个GPS ,然后是三角测量/网络+附加传感器数据)(不推荐,这是仅用于"导航"它消耗太多能量并假设它已插入。)
为此,请参阅Core Location Constants Reference
如果您在户外,起初可能没有确切的位置,可能需要一些时间才能获得手机的最佳位置。
请查看CLLocationManager desiredAccuracy
请求高精度位置数据时,初始事件 由位置服务提供可能没有您的准确性 请求。定位服务可以快速提供初始事件 尽可能。然后它继续确定位置 您要求的准确性,并根据需要提供其他活动, 当这些数据可用时。