如何确定用户是否与GPS坐标在同一条道路上

时间:2014-10-24 11:50:48

标签: ios xcode google-maps gps

我有一个使用谷歌地图的基于GPS的iPhone应用程序。该应用程序只是在地图上显示用户当前位置,并在用户到达旅程中标记点的某个半径范围内时提醒用户。

由于法律原因,我无法在应用程序中使用精细导航,因此应用程序永远不会知道用户从A到B的路线。所有应用程序都会不断检查当前位置GPS点坐标数据库。如果用户当前位置在例如50米的点,用户将收到有关该点的消息。

我的问题是: 每个Point的半径为50米,由下图中的大蓝圈标记。

用户用小蓝点表示,行进方向用红色箭头标出。在图像中,用户输入了Point的半径,但实际上并不在与Point相同的道路上。如果用户与Point在同一条道路上并且在Point的半径范围内,用户应该只收到消息。

在输入点数半径时,有没有办法确定用户是否与该点在同一条道路上?

旁注:应用程序正在处于当前状态,我可以在输入Point的半径时收到消息。

enter image description here

2 个答案:

答案 0 :(得分:2)

我一直在实施基于gps的跟踪和跟踪应用程序。我看到的最简单的方法是,当你得到点进入50米半径的事件时,你会做一个geolookup,这意味着你向系统询问long / lat的地址。你将这个(街道)与你的ref点的geolookup进行比较。

这需要geolookup服务和用户在线。

答案 1 :(得分:1)

您应该使用创建每个点时定义的矩形,而不是使用圆圈。或者同时使用两者:如果矩形太近似,则在圆圈内测试一次街道的矩形。您可以通过在开头测试geolookup圆圈的不同点来找出矩形的近似边缘。