3

当用户请求路线时,我需要在谷歌地图中突出显示相关位置。我找到了几个步骤来实施。却一时间卡住了。

假设我们有大量点(几千个)的集合。我们需要找出它们中的哪些位于(动态)路线中。

Step1:首先根据路线过滤掉点。这意味着,找到路线的 max-lat、min-lat、max-lon、min-lon 并将此过滤器应用于我们的组。这样我们就可以找出较少数量的合格候选人。

Step2:我们仍然可以使用名为 RouteBoxer 的实用程序库过滤掉不必要的点。(http://google-maps-utility-library-v3.googlecode.com/svn/tags/routeboxer/1.0/examples/routeboxer-v3.html)

Step3:经过以上2个步骤,我们将点数从几千个减少到几百个。这些点将在该路线周围的某个地方,尽管不完全在其上。这就是我面临挑战的地方。如何检查这些点是否在该路线上?我不认为让所有点都成为一条路线并检查距离是一个好的解决方案(是的,它会起作用。但是..)因为路线可以是任何距离。有没有办法检查点和路线之间的最小距离?

4

2 回答 2

0

是的,有 dijkstra 或 kruskal 算法。

于 2012-11-13T09:29:52.560 回答
0

RouteBoxer 将为您提供多边形或LatLngBounds列表(如果提供多边形,则无论如何您都可以从中获得 LatLngBounds)。您可以循环遍历每个点,并使用 LatLngBounds 类的 contains 方法检查该点是否位于任何这些边界上。

于 2012-11-13T07:40:22.273 回答