【问题标题】:How to find if a geo-location is on a road between two points?如何查找地理位置是否在两点之间的道路上?
【发布时间】:2015-05-08 15:22:44
【问题描述】:

我是一名学生,正在开发与导航相关的 Android 应用程序,试图学习 Android 编程。应用程序需要在可用的地理位置中搜索地理位置(纬度、经度),并找出哪些位于用户正在旅行的路线上。

例如,如果用户从 37.422,-122.084058 到 37.422,-122.084058,那么我应该能够从我拥有的点集中搜索沿着这条路线的点。我该怎么做?

我正在从 google api 获取用户的路线方向

https://maps.googleapis.com/maps/api/directions/json?origin=Googleplex&destination=infinityloop=&key=your_api_key

我以腿的形式获得路线,并且我有一组地理位置。我想找出哪些地理位置落在用户的路线上。有什么方法可以找到它或我可以使用的任何 API 吗?

非常感谢任何帮助。在此先感谢:)

【问题讨论】:

    标签: android google-maps google-maps-markers google-maps-android-api-2 google-maps-api-2


    【解决方案1】:

    已经有一个用于此的库:将 isLocationOnPath 与您从路线 api 响应中获得的 polyline 一起使用。

    【讨论】:

      【解决方案2】:

      使用这两个点构建一个LatLngBound,并将您要检查的地理位置点传入LatLngBounds.contain()

      【讨论】:

      • 嗨,安迪,感谢您的回答。我尝试使用 LatLngBounds 但它在所有情况下都不起作用。它仅适用于从东北到西南建造的路线。我已尝试将其用于使用 latlng 点的各种可能的路线组合,但在所有情况下我都无法获得正确的结果。
      • SE转NW结果错误,NE转SW和NW转SE错误。有什么办法可以让 LatLngBounds 适用于所有情况?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多