百度地图JS关于规划路线偏离预警的解决方式

2020-02-24 18:43:54

参考地址 百度地图JS关于规划路线偏离预警的解决方式

说实在的这个解决方案有点low,我并不会很赞成,效率有点低。如果多的话,很是耗费资源。

我推荐使用矩形来解决这个问题,而不是圆形。

当日用矩形的话,就要确保轨迹是折线的,而不是弧线等。


如果要用到路线偏离的算法首先到导入GeoUtils_min.js


这个js里面有多中算法:1.坐标点是否在圆内  2.坐标点是否在线上 3.点是否在多边形上等等


使用场景:因为我们这个项目是关于危化品运输,需要给危化品车辆规定一条行驶的路径,车辆只能按照规定路线走,一旦超过了规定路线的偏离距离,系统就会预警!


1.引入GeoUtils_min.js


2.获取规划好路径的坐标点集合 ,我们这里假设为:车辆当前坐标为 point   规定路线坐标集合:points


3.遍历坐标集合,以每一个坐标点为圆心,创建圆


   for(var i=0;i<points.length;i++){

   var c =points[i]; //圆心 

   var circle = new BMap.Circle(c, 200);//测试圆 200代表圆的半径距离 单位:米

   circles.push(circle);

}


4.//循环遍历判断车辆当前坐标点是否在圆里

var flag = false;

for(var i=0;i<circles.length;i++){

var result = BMapLib.GeoUtils.isPointInCircle(point, circles[i]); //point:当前坐标点、circles[i]:规划好的圆

   if(result == true){ //true:点是在圆圈里

      flag=true;

      break;

   }

}


5.最后的flag为true说明点在园内,没有超过偏离值,总的来说路径偏离预警这种实现方式还是比较简单的。


  • 2018-01-04 16:37:25

    怎么让自己的网站支持https 访问 - SLL证书服务

    让自己的网站能够通过 https://你的域名 进行访问。 实现这个需要给你服务器安装安全证书。安全证书是有偿的,你要去申请,当然如果你的服务器在阿里云,你可以向阿里云免费申请SSL证书(每个帐号最多申请20个)。

  • 2018-01-08 22:12:20

    加快gradle的编译速度总结-亲身经历

    这两题集成mob的maven,这个编译速度是慢的可怜啊,经过百度得出了这样一个方案,配置好以后那可是神速啊,妈妈再也不用担心我的编译速度看。嗷嗷的。

  • 2018-01-11 09:07:01

    微信小程序的组件用法与传统HTML5标签的区别

    小程序刚开放公测,互联网圈内开始了各种解读和猜测。其中有观点认为小程序和HTML5有着紧密关联,甚至小程序就是基于HTML5开发。 经过仔细研究文档和代码开发,从视图层的角度来说,小程序与传统HTML5还是有明显的区别,主要区别在于: