首页 > 解决方案 > 如何知道位置是否在路线中

问题描述

我必须制作一个具有到某个位置的推荐路线的应用程序,但是如果汽车移动 100 米(街道长度),我不知道如何验证汽车是否在路线上

现在我只调用 google-maps-directions-api 如果地图中的最后一个位置和实际有 100 米的差异

//THIS IS SOME CODE THAT I USE TO VERIFY IF THE CAR IS 100 METERS AWAY FROM THE LAST POINT
 public void verificaMapa(){
        double distancia_ultimo_dibujo = Utilidad.calcularDistancia(WebService.lat_actual,WebService.long_actual,ultimaLocalizacionDibujada.latitude,ultimaLocalizacionDibujada.longitude);
        double distancia_destino = Utilidad.calcularDistancia(WebService.lat_actual,WebService.long_actual,cordenadasDestino.latitude,cordenadasDestino.longitude);
        WebService.distancia_a_recorrer = distancia_destino;
        if(AppPrendida){
            if(distancia_ultimo_dibujo > 100 && distancia_destino > 100){
                Location localizacion_actual = new Location("");
                localizacion_actual.setLatitude(WebService.lat_actual);
                localizacion_actual.setLongitude(WebService.long_actual);
                DrawRoute(localizacion_actual);
            }
        }
        if(distancia_destino <= 100 && !guardadollegaDestino){
            WebService.distancia_a_recorrer = distancia_destino;
            WebService.EstadoActual = 4;
            guardadollegaDestino = true;
        }
    }

标签: javaandroidgoogle-mapsgoogle-directions-api

解决方案


我终于找到了解决方案:

只需使用三角函数即可。公式是

  • distanceFromActualToEndPoint + distanceFromActualToBeginPoint - distanceFromBeginPointToEndPoint

如果差值大于 15 米,则汽车不在方向。


推荐阅读