继上次Echarts散点图与百度地图结合后的卡顿问题

    之前想在百度地图上将设备的分布用散点图表示在百度地图上,虽然也成功实现了,但是发现一次性加载的点太多了的话,会出现一点卡顿问题,移动地图的时候不是很方便,而且因为每次移动,点也会重新计算方位,导致出现点和图分离的现象。之后去百度地图的网上学习了一下,了解到了百度地图提供了加载海量的点很方便的


PointCollection类。使用后确实加载快了很多,而且方便许多。

var map = new BMap.Map("map");                        // 创建Map实例
    map.centerAndZoom(new BMap.Point(105.000, 38.000), 5);     // 初始化地图,设置中心点坐标和地图级别
    map.enableScrollWheelZoom();                        //启用滚轮放大缩小
    map.setMapStyle({style:'midnight'});              //这里是设置地图的风格,我设置的是午夜的风格
    if (document.createElement('canvas').getContext) {  // 判断当前浏览器是否支持绘制海量点
        var points = [];  // 添加海量点数据
        for (var i = 0; i < AjaxObject.count; i++) {//这里的AjaxObject是我从数据库中获取到的数据
          points.push(new BMap.Point(AjaxObject[i].last_map_x, AjaxObject[i].last_map_y));
        }
        var options = {
            size: BMAP_POINT_SIZE_HUGE,//标记点的大小
            shape: BMAP_POINT_SHAPE_WATERDROP,//标记点的形状
            color: '#d340c3'//标记点的颜色
        }
        var pointCollection = new BMap.PointCollection(points, options);  // 初始化PointCollection
        map.addOverlay(pointCollection);  // 添加Overlay
    } else {
        alert('请在chrome、safari、IE8+以上浏览器查看本示例');
    }

    最后我的展示如下:

    另外,标记点的shape和size,官网上都有相应的常量。



版权声明:本文为James23vs24原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。