百度地图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说明点在园内,没有超过偏离值,总的来说路径偏离预警这种实现方式还是比较简单的。


  • 2017-02-10 16:22:13

    git历史记录查询

    查看提交历史:git log 查看提交历史并显示版本间的差异:git log -p 查看指定历史:git log xxx(sha1值) -p 查看提交历史(指定时间):

  • 2017-02-13 17:50:05

    cURL error 60: SSL certificate problem: unable to get local issuer certificate

    Drupal 8 version uses Guzzle Http Client internally, but under the hood it may use cURL or PHP internals. If you installed PHP cURL on your PHP server it typically uses cURL and you may see an exception with error Peer certificate cannot be authenticated with known CA certificates or error code CURLE_SSL_CACERT (60).

  • 2017-02-16 08:09:01

    HTML中PRE和p的区别

    pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。 <pre> 标签的一个常见应用就是用来表示计算机的源代码。

  • 2017-02-16 15:14:14

    动态加载js和css

    开发过程中经常需要动态加载js和css,今天特意总结了一下常用的方法。