gpt4 book ai didi

algorithm - Google Maps : Given a point, 如何找到给定道路距离内的所有点?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:17:24 25 4
gpt4 key购买 nike

在我的应用中,GPS 会选择车辆的位置。如果它向任何方向行驶 1 公里,则应该在车辆可能所在的所有点放置标记(请注意,在他的 1 公里范围内,道路可能会 fork 多次)。

有人可以建议我怎么做吗?提前致谢。

最佳答案

这是一个很难用 Google Maps API 解决的问题。以下是您可能要考虑的一种方法:

  1. 您可以轻松计算出围绕您的 GPS 点 1 公里的边界圆,也可以轻松计算落在该圆周上的任何角度的点。该距离将“作为乌鸦文件”而不是实际道路距离,但您可能需要查看以下 Stack Overflow 帖子以了解具体实现方式:

    How to calculate the latlng of a point a certain distance away from another?

    在半径为 1 公里的边界圆上以 20 度间隔标记的屏幕截图:

删除了无效的 ImageShack 链接 - 如何计算与另一个点相距一定距离的点的经纬度?

  1. 还有一个技巧可以将这些点捕捉到最近的街道。你可以看看Mike Williams' Snap point to street examples为了很好地实现这一点。

    可以使用 Google Maps API 的路线服务计算从您的 GPS 点到每个捕捉到的道路点的道路距离。请注意,这仅适用于支持谷歌地图方向的国家,但更重要的是,道路距离几乎总是大于 1 公里,因为我们的边界圆“如乌鸦飞翔”的半径为 1 公里。但是,如果您可以使用近似信息,这可能已经是一种可能的解决方案。

  2. 你也可以考虑从上面的解决方案开始(1km的外接圆,计算圆周上的x个点,捕捉到最近的道路),然后计算每条路径的道路距离(从你的GPS点到每个捕捉点),然后您可以对每条路径递归地重复此操作,每次使用较小的边界圆,直到您到达接近 1 公里的道路距离。您可以根据误差幅度按比例减少每次递归中的边界圆,以使您的算法更高效。


更新:

我发现了一个非常简洁的实现,它似乎使用了与我上面描述的类似的方法:

请注意如何更改从顶部开始的度数间隔。如果间隔较宽,您会很快获得结果,但您很容易错过几条路线。

截图:

删除了无效的 ImageShack 链接 - Driving Radius

关于algorithm - Google Maps : Given a point, 如何找到给定道路距离内的所有点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2856992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com