Iphone的核心位置对我来说太棒了。
我写了一些测试代码来调用startlocationupdating函数来获取位置:
(无效)doContinuousPositioning:(的UIButton *)发送方 { self.bPersistent = YES;
if (self.bPersistent) {
_tv_Info.hidden = YES;
_tableView.hidden = NO;
}
if (self.locationManager) {
[self.locationManager stopUpdatingLocation];
self.locationManager = nil;
}
self.locationManager = [[CLLocationManager alloc]init];
[self.locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
self.locationManager.delegate = self;
self.locationManager.distanceFilter = kCLDistanceFilterNone;
[self.locationManager requestAlwaysAuthorization];
[self.locationManager startUpdatingLocation];
_beginTime = [Global getTimeStamp];
[self.locationManager setAllowsBackgroundLocationUpdates:YES];
self.locationManager.pausesLocationUpdatesAutomatically = NO;
结果:
2017-08-29 17:13:13.081 | starttime:2017-08-29 17:13:13.052
endtime:2017-08-29 17:13:13.080
timecost:28 ms
长:113.046818,alt:21.571278
海拔:38.528896
horizontalAccuracy:65.000000
verticalAccuracy:23.415365
当然:-1.000000
速度:-1.000000
楼层:0
我发现位置返回的速度非常快,无论你在哪里,功能运行时间都在60毫秒或更短。
并且位置的准确性也很高,大多数时间它给出了60米;
即使我从一个地方搬到B地方,A与B相差10公里
这个位置的回报也很快,令人惊讶!
我知道第一个位置是网络位置类型。
所以问题是:
iphone如何能够快速回归网络位置?
在我看来,网络位置来源来自cell或wifi ap;
它将花费2ms来获取手机信号,或花费2s来至少获得手机上的wifi ap。
第二个问题是:
iphone可以使用手机ID来计算高精度位置吗?
或
Iphone可以在20ms内获得wifi ap?
答案 0 :(得分:2)
iphone如何能够快速回归网络位置?
核心位置是一项系统服务。它在后台运行并缓存结果。如果它有最近的位置,例如另一个应用程序(或您的应用程序)最近请求它,它几乎会立即给它。如果可用的话,后续回调可以提供更准确的结果,例如带GPS锁。
60米的分辨率并不是真正的高精度,它可能来自Wifi和Cell信息的组合。
iphone可以使用手机ID来计算高精度位置吗?
据我所知,蜂窝塔信息用于最不准确的位置,Wifi信息是下一个,最高精度来自GPS / GLONASS。
这些信息来源可以(并且可能)由核心位置组合以提高准确性。
Iphone可以在20ms内获得wifi ap?
如上所述,Core Location是一个系统服务,它可能会在20ms内响应你,但是不可能知道实际计算位置数据的时间和花费的时间。