我正在使用LocationManager
获取用户位置坐标,如下所示。
locationManager.requestAlwaysAuthorization()
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.delegate = self
locationManager.distanceFilter = 50
我注意到在iphone5s和iphone 6两个设备上运行时我的坐标不同。当我使用distanceFromLocation
方法时,它们之间的距离约为70-100米
为什么会这样?
如何获得最佳用户位置?
答案 0 :(得分:0)
kCLLocationAccuracyBest
是您在单一职位的准确性方面所能做的最好的事情。它将考虑WIFI,GPS和无线电信号,通常只有几米。
尽管如此,如果您要搬家,请将distanceFilter
设置为较低的值,以确保您更频繁地收到有关新职位的通知。
距离过滤器50意味着如果用户移动50米,则会通知您,这可以解释您的不准确性。
答案 1 :(得分:0)
主要问题是distanceFilter设置为50。
只需删除它。
在正常的GPS条件下,准确度将约为6米。
因此,您可以预期在同一位置的两个用户之间的距离大约为2 * 6 = 12米。
然而,如果用户在建筑物内,情况会变得更糟,并且它们之间的距离可能会增加。