【问题标题】:check if the latitude and longitude lie in the range of my google map start and end destination检查纬度和经度是否在我的谷歌地图起点和终点范围内
【发布时间】:2019-10-08 20:14:48
【问题描述】:

我正在从数据库中检索纬度和经度,并想检查它们是否在我的路线上(从谷歌方向 API 中找到)

我正在考虑使用地理围栏,但我只想在我的路线上显示纬度和经度标记

【问题讨论】:

  • 有什么问题?你用的是什么代码?
  • 我正在使用安卓(java)
  • 意味着你在使用任何库吗?您可以为您的范围指定半径
  • 但半径可能会显示其他路线的纬度和经度标记,当半径较大时,较长路线,当我从 php 检索纬度和经度时,我想在仅在我的路线上的纬度和经度。
  • 您想在地图中心的两点之间进行路由?没有其他标记不应该显示?

标签: php android location maps


【解决方案1】:

你可以通过谷歌使用maputils

    if (PolyUtil.isLocationOnPath(latLng, rectLine.getPoints()  , false, 500 )) {

 // location in on route

                                        }
  1. rectline = 你的折线
  2. 500 米公差,您可以根据需要设置
  3. false = 标志告诉方法是否使用过 geodesc true 绘制折线时

【讨论】:

  • 如果数据库中有大量的经纬度。我猜这需要时间。
  • 是的,但这是唯一的方法。试一试,这不会拨打网络电话来检查路线上的位置是否对我有用。
  • 感谢这对我也有用,但如果你找到更好的解决方案,它会导致大量的匹配计算,请分享
  • 我认为没有大量计算可以做到这一点。在线程中运行计算以减少 UI 线程的负载。如果你想减少计算,那么也许你可以从折线位置列表中每隔 5 或 10 纬度取一次,并使用android.location.Location.distanceBetween() 获取到标记的距离,然后检查它是否在它附近。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-15
  • 1970-01-01
  • 2012-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多