Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用接近pinoint精度的iOS确定用户位置_Ios_Swift_Cocoapods_Core Location_Cllocationmanager - Fatal编程技术网

使用接近pinoint精度的iOS确定用户位置

使用接近pinoint精度的iOS确定用户位置,ios,swift,cocoapods,core-location,cllocationmanager,Ios,Swift,Cocoapods,Core Location,Cllocationmanager,我的应用程序非常依赖于用户位置,因此准确性对于应用程序的使用非常关键。与我的团队交谈时,我们意识到,如果一个用户离我们创建的另一个地理围栏很近,CoreLocation可能无法识别差异。目前是否有任何框架更适合iOS中的CL或LocationManager。我查看了Cocoapods库,但它们在功能上似乎非常接近。你无法克服GPS系统的物理和技术限制。如果在位置管理器配置了最高所需的desiredAccuracy(即kCLLocationAccuracyBestForNavigation)时调用

我的应用程序非常依赖于用户位置,因此准确性对于应用程序的使用非常关键。与我的团队交谈时,我们意识到,如果一个用户离我们创建的另一个地理围栏很近,CoreLocation可能无法识别差异。目前是否有任何框架更适合iOS中的CL或LocationManager。我查看了Cocoapods库,但它们在功能上似乎非常接近。

你无法克服GPS系统的物理和技术限制。如果在位置管理器配置了最高所需的
desiredAccuracy
(即
kCLLocationAccuracyBestForNavigation
)时调用CLLocationManager的
requestLocation
,则
locationManager(uuuUdidUpdateLocations:)
中的响应与您将得到的一样准确。使用“库”不会改变这一点。

您无法克服GPS系统的物理和技术限制。如果在位置管理器配置了最高所需的
desiredAccuracy
(即
kCLLocationAccuracyBestForNavigation
)时调用CLLocationManager的
requestLocation
,则
locationManager(uuuUdidUpdateLocations:)
中的响应与您将得到的一样准确。使用“库”不会改变这一点。

您可以将精度设置为kCLLocationAccuracyBestForNavigation,然后您将获得最佳可用数据。如果您对iOS对geofence的处理不满意,您可以尝试自己通过订阅委托方法来实现geofence


这样,您还可以过滤精度较低的位置,例如忽略它们。

您可以将精度设置为kCLLocationAccuracyBestForNavigation,然后您将获得最佳可用数据。如果您对iOS对geofence的处理不满意,您可以尝试自己通过订阅委托方法来实现geofence


通过这种方式,您还可以过滤低精度的位置,例如忽略它们。

正如其他人所说,没有比GPS能够提供的精度更好的灵丹妙药

你能做的就是

  • 将所需精度设置为最大值
  • 检查从位置更新返回的准确度值,并拒绝水平“准确度”值过大的读数(因为“准确度”读数实际上是一个“混淆圈”或手机实际所在的米半径)

  • 请注意,第2步可能会导致需要很长时间才能获得可接受的位置定位,或者您可能根本无法获得可接受的读数。根据我几年前所做的测试,要求水平精度读数为16米是我所能达到的最佳水平,并且我只能在没有b的开阔区域获得该信号质量建筑物和没有很多树木覆盖的地方。(但是,我没有在开阔的草原上尝试过。)

    正如其他人所说,没有比GPS能提供的精度更好的灵丹妙药了

    你能做的就是

  • 将所需精度设置为最大值
  • 检查从位置更新返回的准确度值,并拒绝水平“准确度”值过大的读数(因为“准确度”读数实际上是一个“混淆圈”或手机实际所在的米半径)
  • 请注意,第2步可能会导致需要很长时间才能获得可接受的位置定位,或者您可能根本无法获得可接受的读数。根据我几年前所做的测试,要求水平精度读数为16米是我所能达到的最佳水平,并且我只能在没有b的开阔区域获得该信号质量没有很多树木覆盖的建筑。(不过,我还没有在开阔的大草原上尝试过。)