我如何知道GPS提供商正在使用什么

时间:2014-04-01 10:07:02

标签: ios gps location cllocationmanager

我开发使用用户位置的iOS应用程序。问题是

"我想知道目前的位置来自Wifi还是3g还是其他?我想知道提供商。"

这可能吗?我搜索了一下没有运气。

提前致谢。

3 个答案:

答案 0 :(得分:1)

您无法知道 是如何获得它的,但您可以知道您收到的位置的准确性。每个CLLocation对象都有一个horizontalAccuracy属性,您可以检查。它将以米为单位指示误差范围。此外,它还具有3D位置的verticalAccuracy属性。

答案 1 :(得分:1)

首先,如果设备具有GPS并且您选择CLLLocationAcuracyBest或BestForNavigation,则GPS始终用作位置提供者。

如果您不想使用这些模式,您可以通过以下方式区分提供者位置:

只有GPS提供属性" course / heading"和"速度"。 没有其他(WLAN,GSM-cell)可以提供过程和速度。

高度理论上可以由GSM-Cell(或Wlan)提供,因此将海拔高度用作GPS识别提示可能是不安全的。我不建议使用海拔高度。

即使使用GPS,静止不动也会无效,而速度将是有效的0.

另一个非常好的工作解决方案是使用水平精度< 40条件。

GSM手机将拥有hor。精度远高于40米,例如。千米。

  • 如果你有水平准确度< 30肯定形成GPS
  • 如果你有一个有效的课程:它肯定来自GPS
  • 如果你有一个有效的速度:它肯定来自GPS

在所有其他情况下,它的位置不好,而且通常不会因为GPS或良好的Wlan / GSM进一步查找而感到尴尬

答案 2 :(得分:0)

几个月前,我遇到了和你一样的问题。 我在stackoverflow上发现了一些类似的问题,它们具有相同的答案,如:

您的设备会自动将更新的位置信息发送到您的应用,无论是GPS,wifi,EDGE还是3G ......

初始CLLocationManager

时,

取决于您的代码