• 百度地图在jsp页面加载大量轨迹导致地图卡顿


    原画线方式:

    //存储大量点轨迹json数组:historyPathList
    for(var i=0;i<historyPathList.length-1;i++){   
           drawColorLine(i,color,4,historyPathList);
       }
    //显示原始路线
    function drawColorLine(i,color,weitht,list){
        var polyline = new BMap.Polyline([
            new BMap.Point(list[i].Lng,list[i].Lat),//起始点的经纬度
            new BMap.Point(list[i+1].Lng,list[i+1].Lat)//终点的经纬度
        ], {strokeColor:color,//设置颜色
            strokeWeight:weitht, //宽度
            strokeOpacity:1});//透明度
        map.addOverlay(polyline);
    }
    这样写会多加很多不必要的点,而且对API调用了过多次数,会影响性能。

    改进:

     var polylinePointsArray = [];
       for(var i=0;i<historyPathList.length;i++){
           polylinePointsArray[i] = new BMap.Point(historyPathList[i].Lng,historyPathList[i].Lat);
       }
       var polyline = new BMap.Polyline(polylinePointsArray, {strokeColor:"green", strokeWeight:4, strokeOpacity:1})
    polyline.id = 123456; map.addOverlay(polyline);
    备注:Polyline是个覆盖物对象,可以和其他对象一样自定义属性的,比如在声明以后设置polyline的id属性直接用polyline.id=content就可以了。再例如:polyline.name 
    或 polyline.length等。覆盖物对象可以根据自己的需求自定义任何属性,取值的时候只需按这个字段取就可以了。
  • 相关阅读:
    将数据加载时显示的图片和文字提成公共的--实现方法
    JavaScript【面向对象】-静态方法-私有方法-公有方法-特权方法
    强大的JS数组
    sql工作问题总结
    JSON.stringify()的使用--将string转换成json
    JS小技巧
    JS工作积累
    (六)Redis之数据结构之Set
    (五)Redis之List
    (四)Redis之哈希
  • 原文地址:https://www.cnblogs.com/qiantao/p/11497454.html
Copyright © 2020-2023  润新知