【问题标题】:Track if a Bus GPS point is on route - Google Maps API跟踪巴士 GPS 点是否在路线上 - Google Maps API
【发布时间】:2018-02-02 19:48:37
【问题描述】:

我有一个公共汽车网络的实时 GPS 源,他们希望能够跟踪公共汽车是否偏离路线。我可以获得每个巴士服务的巴士站及其停靠点坐标。公共汽车站通常非常靠近,使用谷歌地图可以在站点之间创建与公共汽车路线路径匹配的路线。

我的问题是,最好使用 Google Maps JavaScript 或 Web Services API 如何检测此 GPS 点是否偏离路线?

如果有比 Google 地图更好的替代品?

感谢所有帮助,谢谢。

【问题讨论】:

  • 您根本没有向我们展示您的数据或任何代码...如果您需要有关基本数学方面的帮助,请尝试 math.SE.. 或 google...brilliant.org/wiki/distance-between-point-and-line
  • 获取公交车及其停靠点的 GPS 位置的代码与问题无关。我想知道计算 GPS 位置是否在 Google Maps 路线上的方法。您链接了一个很棒的网站,但是我如何获得 Google 地图路线的 GPS 坐标?苏格兰的道路是弯曲的,所以我需要能够沿着路线的任何部分获得这一点。我该怎么做?
  • 代码不相关的唯一方法是问题不相关。你要么需要展示你的代码,要么在数学 stackexchange 网站上询问他们不需要代码的地方......或者就像我说的,尝试自己搜索一下,那里有很多信息......stackoverflow.com/questions/3609049/…祝你好运
  • 对不起,如果我的解释不够清楚,但我已经找到了解决方案并发布了它。

标签: javascript web-services google-maps google-maps-api-3 gps


【解决方案1】:

我发现了一种实现此目的的方法,使用公交车站的 GPS 位置,您可以使用 Google Maps Directions API 创建沿 Google Map 路线的航路点。然后,您可以使用输出结果中的折线概览来查找路线上的每个点。 PolyLine 是压缩的,需要解码才能找到沿途各点的经纬度。

这里有详细说明: https://developers.google.com/maps/documentation/utilities/polylinealgorithm

然后,您可以使用沿线/路线的点来判断 GPS 标记是否在该区域内,然后巴士在途中,如果巴士在外面则关闭。您可能需要使用 Google 的 Snap to road API 来确保 GPS 点准确无误。

我希望这对其他人有帮助。

编辑: 澄清一下,使用 Google Maps Directions API 创建路线,这将为您提供“折线概览”。这为您提供了路线上的每一个点,可以看到 here。使用这些点,您可以在每个点之间创建一个边界框。然后您可以通过它是否在边界框内来计算路线上的点。

重要的是要注意折线概述是编码的,正如我之前的回答中提到的那样。 Google 制作了一个工具来演示这种解码here。在 Javascript 中,我相信有一个内置的库命令可以进行编码和解码。

希望这更清楚。

【讨论】:

  • 嗨,我需要在我的应用程序中实现相同的功能。你能帮帮我吗?
  • 我可以试试,你目前卡在哪一部分?
  • 我已经创建了示例笔。请查看此链接codepen.io/ragunathan/full/xYPPdY。如果您单击路径点内的路线,那么我需要显示蓝色三角形,如果不是红色圆圈。它适用于折线。但这不是确切的路线
  • 好吧,我的 JavaScript 知识不是很强,我打算主要用 C# 来实现这个解决方案。我将编辑我的上述问题以更清楚地解释它。
猜你喜欢
  • 2013-09-08
  • 2014-01-25
  • 1970-01-01
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多