检查纬度和经度是不是在我的谷歌地图起点和终点范围内
Posted
技术标签:
【中文标题】检查纬度和经度是不是在我的谷歌地图起点和终点范围内【英文标题】: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 检索纬度和经度时,我想在仅在我的路线上的纬度和经度。 您想在地图中心的两点之间进行路由?没有其他标记不应该显示? 【参考方案1】:你可以通过谷歌使用maputils
if (PolyUtil.isLocationOnPath(latLng, rectLine.getPoints() , false, 500 ))
// location in on route
-
rectline = 你的折线
500 米公差,您可以根据需要设置
false = 标志告诉方法是否使用过 geodesc true
绘制折线时
【讨论】:
如果数据库中有大量的经纬度。我猜这需要时间。 是的,但这是唯一的方法。试一试,这不会拨打网络电话来检查路线上的位置是否对我有用。 感谢这对我也有用,但如果你找到更好的解决方案,它会导致大量的匹配计算,请分享 我认为没有大量计算可以做到这一点。在线程中运行计算以减少 UI 线程的负载。如果你想减少计算,那么也许你可以从折线位置列表中每隔 5 或 10 纬度取一次,并使用android.location.Location.distanceBetween()
获取到标记的距离,然后检查它是否在它附近。以上是关于检查纬度和经度是不是在我的谷歌地图起点和终点范围内的主要内容,如果未能解决你的问题,请参考以下文章