CLLocationManager不为同一位置的不同iphone提供相同的lat长坐标

时间:2015-09-08 10:43:47

标签: ios swift gps cllocation

我正在使用LocationManager获取用户位置坐标,如下所示。

  locationManager.requestAlwaysAuthorization()
  locationManager.requestWhenInUseAuthorization()
  locationManager.startUpdatingLocation()
  locationManager.desiredAccuracy = kCLLocationAccuracyBest
  locationManager.delegate = self
  locationManager.distanceFilter = 50

我注意到在iphone5s和iphone 6两个设备上运行时我的坐标不同。当我使用distanceFromLocation方法时,它们之间的距离约为70-100米

为什么会这样?

如何获得最佳用户位置?

2 个答案:

答案 0 :(得分:0)

kCLLocationAccuracyBest是您在单一职位的准确性方面所能做的最好的事情。它将考虑WIFI,GPS和无线电信号,通常只有几米。

尽管如此,如果您要搬家,请将distanceFilter设置为较低的值,以确保您更频繁地收到有关新职位的通知。  距离过滤器50意味着如果用户移动50米,则会通知您,这可以解释您的不准确性。

答案 1 :(得分:0)

主要问题是distanceFilter设置为50。 只需删除它。
在正常的GPS条件下,准确度将约为6米。 因此,您可以预期在同一位置的两个用户之间的距离大约为2 * 6 = 12米。

然而,如果用户在建筑物内,情况会变得更糟,并且它们之间的距离可能会增加。