当用户请求路线时,我需要在谷歌地图中突出显示相关位置。我找到了几个步骤来实施。却一时间卡住了。
假设我们有大量点(几千个)的集合。我们需要找出它们中的哪些位于(动态)路线中。
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个步骤,我们将点数从几千个减少到几百个。这些点将在该路线周围的某个地方,尽管不完全在其上。这就是我面临挑战的地方。如何检查这些点是否在该路线上?我不认为让所有点都成为一条路线并检查距离是一个好的解决方案(是的,它会起作用。但是..)因为路线可以是任何距离。有没有办法检查点和路线之间的最小距离?