有没有人对如何在位置管理器上获得最佳水平精度有任何建议?我已经将所需的精度设置为NearestTenMeters,但考虑到精度总是会根据覆盖区域而改变,我怎样才能在locationManager中编写一些代码,以便在获得最佳水平精度后才停止更新?
答案 0 :(得分:1)
如果您希望它达到一定的准确度,请设置委托方法
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
拥有
if(newLocation.horizontalAccuracy <= (some number) )
[locationManager stopUpdatingLocation];
类似的东西。
答案 1 :(得分:0)
通常硬件开启的时间越长,获得的位置越多,获得的准确度就越高。您可以尝试尽早启用管理器以使其准确,然后抓住位置。当目标移动时,它也有帮助,当gps移动时,芯片能够获得更准确的读数。此外,设备的位置会产生差异,如果你在场外,你会得到更好的读数,而不是你在沙坑里,所以有时你得到的读数是最好的。您的代码可以等到它从位置管理器获取更新更新一段时间,然后它可能处于最佳准确度。