java - 如何知道位置是否在路线中
问题描述
我必须制作一个具有到某个位置的推荐路线的应用程序,但是如果汽车移动 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;
}
}
解决方案
我终于找到了解决方案:
只需使用三角函数即可。公式是
- distanceFromActualToEndPoint + distanceFromActualToBeginPoint - distanceFromBeginPointToEndPoint
如果差值大于 15 米,则汽车不在方向。
推荐阅读
- sql - SQL 我需要从字符串中提取存储过程名称
- c# - Xamarin 表单:如何访问“tabBarController:shouldSelectViewController:”
- javascript - 无法实现 60fps 动画
- asp.net-core - AspNetCore.Session-Distributed Cache 在分布式服务器上不断超时
- javascript - 修复处理中的粒子系统错误
- java - 如何将项目的 Java Doc 发布到 github?
- java - 如何从文件中读取并按字母顺序将该文件的内容排序到链接列表中?
- ios - 为什么我的 drawsana 实例在 IOS 上的 Uigesturerecognizer 上没有响应?
- imagemagick - 如何使用 im4java 执行“tile:”命令?
- php - 创建更好的 URL - .htaccess