使用GPS,我如何检测用户是在路上还是在建筑物内

时间:2016-10-17 20:52:35

标签: gps

我目前正在开发技术,以帮助用户找到停车位。 但我面临一个小问题: 如果用户表示他现在正在一个免费的位置停车,但他正在撒谎并且他现在在家。 我如何从GPS中检测到他是在建筑物内还是在路边? 感谢

1 个答案:

答案 0 :(得分:0)

您需要地图数据(OpenStreetMap是免费的),并确定用户是否在该地图上的某个位置。您可以通过将GPS数据与地图数据进行比较来实现这一目标。

在这种情况下我做的是测量纬度/经度与每条道路之间的距离,并将GPS角度与每条线的角度进行比较。您使用的上下文信息越多,您获得的结果就越准确:

  • 如果速度是60公里/小时,你可能不在建筑物内。你可能也不在30公里/小时的道路上。
  • 如果你静止超过2分钟,你可能不在车里。
  • 如果您了解建筑物,并且只有少数建筑物,您可以检查是否看到某个无线路由器。

基本上你会计算每条道路的得分,然后选择得分最高的道路来了解你的位置。

得分= DistScore * DistWeight + AngleScore + AngleWeight等。

此外,从iOS和Android中,您可以获得精确到米。如果您可以访问原始GPS数据,也可以自己计算。使用它,您可以设置需要扫描的区域。例如,对于高精度(3米),您可能没有很多道路要扫描。如果精确度为50米,您可能应该匹配更远的道路。

如果准确性很重要,您应该查看一系列GPS数据,并测试所遵循的路线是否是逻辑路径。