use*_*067 21 algorithm google-maps
在我的应用程序中,GPS选择车辆的位置.然后,如果它在任何方向上行驶1公里,那么应该将标记放在车辆可能存在的所有点上(注意道路可能在他1KM范围内多次叉车).
有人可以建议我怎么做吗?提前致谢.
Dan*_*llo 21
使用Google Maps API解决这个问题非常棘手.以下是您可能需要考虑的一种方法:
您可以轻松计算GPS点周围1km的边界圆,并且还可以轻松计算落在该圆周上的点,对于任何角度.这个距离将是"作为乌鸦文件"而不是实际的道路距离,但您可能需要查看以下Stack Overflow帖子,以获得具体实现:
在半径为1km的边界圆上以20度间隔标记的屏幕截图:
删除死了ImageShack链接 - 如何计算距离另一个点一定距离的点的latlng?
还有一个技巧可以将这些点捕捉到最近的街道.你可以查看Mike Williams的Snap指向街道示例,以便很好地实现这一点.
可以使用Google Maps API的路线服务来计算从GPS点到每个捕捉的路点的道路距离.请注意,这仅适用于支持Google地图中方向的国家/地区,但更重要的是,道路距离几乎总是大于1公里,因为我们的边界圆"半径为1公里",因为"乌鸦飞".但是,如果您可以使用大致信息,这可能已经是一种可能的解决方案.
您还可以考虑从上述解决方案开始(1km的边界圆,计算圆周上的x点,然后将它们捕捉到最近的道路),然后计算每条路径的道路距离(从GPS点到每个捕捉点),以及那么你可以递归地为每条路径重复这个,每次使用一个较小的边界圆,直到你达到接近1公里的道路距离.您可以减少每次递归中的边界圆,与误差范围成比例,以使您的算法更有效.
更新:
我发现了一个非常简洁的实现,似乎使用了与上述方法类似的方法:
请注意如何从顶部更改度数的间隔.间隔很宽,你会得到快速的结果,但你很容易错过几条路线.
截图:
删除死亡的ImageShack链接 - 驾驶半径
| 归档时间: |
|
| 查看次数: |
32395 次 |
| 最近记录: |