0

之后didUpdateToLocation,我的新位置(CLLocation)是

新位置 = [37.785834 -122.406417]

然后我正在打印locationManager (CLLocationManager)horizontalAccuracy的 newLocation desiredAccuracy,它们是

水平精度为 5.000000

期望精度为 10.000000

我的问题是这些数字是从哪里来的……如果您搬到另一个新位置,它们会发生变化吗?

此外,在我创建和初始化 CLLocationManager 之后,它的期望精度是 -1。再次,-1 是 CLLocationManager 的默认值吗?

请就这些问题给我建议。

谢谢

4

2 回答 2

4

它们取决于 CoreLocation 属性desiredAccuracy,这些使它们成为启用的定位机制的功能。您可以使用无线电、wifi、gps 三种机制。您在管理器中要求的准确性越多,您获得的准确度值就越小(如果可能)并且您消耗的电池越多。通常即使您设置使用精度进行导航,您将获得的第一个位置也会具有很大的精度值,因为 gps 信号需要检查卫星并且需要时间。您获得的准确度值越小,您就越接近现实中的某个位置。您为核心 loc 管理器获得的日志只是准确度值的枚举值

[更新]
是的,这些值可能会改变。例如,您正在使用 GPS 获取位置,然后您进入建筑物。GPS在建筑物内不起作用,精度值会根据新的定位机制而变化,如果切换到wifi,您应该会看到300m-30m之间的东西。

于 2012-04-19T04:52:38.403 回答
1

精度会根据许多因素而变化。蜂窝基站信号、GPS 卫星可用性和 wi-fi 访问。负数表示该值不正确,不应使用。您可以在代码中设置所需的准确性,但这不能保证......我希望这会有所帮助。

于 2012-04-19T04:48:59.663 回答