确定用户是室内还是室外?

时间:2012-12-02 13:56:34

标签: ios iphone core-location

有没有办法确定用户是室内还是室外?我对室内地图不感兴趣,只要用户在室内或不在室内,而不询问用户。

如果用户正在使用Wifi,那么用户可能在室内,或者如果用户站在路上,例如。

7 个答案:

答案 0 :(得分:4)

你无法100%确定。通常,GPS信号在室内会较弱,但并非总是如此。此外,用户坐标在路上的事实告诉你什么,他可能在室内,信号强度可能是一周,坐标有缺陷。但是,根据您希望算法的准确程度,您可以依靠信号强度(也许是位置)来为您提供一些东西。

如果你想把它提升到一个新的水平,虽然它可能被证明是浪费时间,但事实上用户通常有运动模式(工作的家,工作的商店,周日的公园等)你可以尝试以上,加上其他几个参数,如计步器(移动,行走,跑步),速度(高速,没有计步器的移动,意味着他在车里),噪音,亮度等,并运行逻辑回归算法可能要求用户反馈作为训练集。但是,正如您所看到的,这将变得非常大,如果您的应用程序很小,绝对不值得。

答案 1 :(得分:1)

不,没有API可以检查。看看像Wifi这样的东西也无济于事,因为用户可能会使用移动热点并且目前正站在一个领域。我担心你不得不问用户他们在室内还是室外,但是,你确定你在这里解决了正确的问题吗?

答案 2 :(得分:1)

你无法明确说明用户是在内部还是外部(WIFI与Cellular不会有帮助......你可以在室外使用WIFI,在室内使用蜂窝电话)。我认为你能得到的最接近的(即使这有太多差异值得信赖)是要注意GPS信号强度的变化(horizo​​ntalAccuracy,verticalAccuracy等)。

最重要的是,没有一种程序化方法可以检查这一点。

答案 3 :(得分:1)

似乎任何基于传感器的单一方法都无法解决问题。一项研究工作通过结合本主题中提到的所有技术来解决您的问题。

Pengfei Zhou等[1],提出了IODetector('室内/室外探测器'),一种检测室内/室外环境的传感服务。它使用各种传感器,包括加速度计,接近传感器,光传感器,磁力计。它还观察了蜂窝电话信号。根据他们的实验,系统的检测性能(精确度/召回率)约为85%。

1 Pengfei Zhou, Yuanqing Zheng, Zhenjiang Li, Mo Li, and Guobin Shen. 2012. IODetector: a generic service for indoor outdoor detection. In Proceedings of the 10th ACM Conference on Embedded Network Sensor Systems (SenSys '12), 113-126.8

答案 4 :(得分:0)

您是否使用Reachablitiy类来确定用户是使用WiFi还是使用互联网连接方式? 请查看示例here

答案 5 :(得分:0)

使用可见GPS​​卫星的数量是一个指示,在ios上你无法获得该属性 以dB为单位测量的Gps信号强度是另一个指标,但在ios Api中不可用 接下来是hdop值,在ios上也没有。
剩下的是horicintal Accuracy,我在某种程度上是上述的组合。

其他简单的解决方案:
户外人们通常会移动:检查GPS的速度  如果您的范围:复杂的解决方案可能 为navi和其他应用程序构建的数字道路地图存储了内城区房屋的坐标(并非所有城市),您可以检查pos是否在这样的多边形内并结合精度值。

我估计可以使用rhevsimple解决方案完成任务,这样你可以获得90-95%的校正检测率

答案 6 :(得分:0)

据我所知,有一个有用的API(也可以在后台运行):来自CMMotionActivityManager框架的CoreMotion。它为CMMotionActivity提供了一些动作活动,例如automotivecycling。根据您的观点,您可以将汽车定义为室外(或室内)。

你也不太可能在室内骑自行车。但请注意cycling is not really working,尽管它是API的一部分。