2018-10-29 解决高德地图海量点卡顿的问题

由于公司是做医疗方面护心仪设备这方面的,有个需求是统计中国各个地区佩戴护心仪的人,之前页面效果如图:

微信图片_20181029144123.png

之前的效果图 用户有7000多个

image

颜色分别代表健康状态 跟人头颜色相对应

后来用户涨到7000多的时候,页面打开就特别的卡了,缩放更别说了,老大让我优化,得保证到10几万用户时不卡顿,能正常缩放。那段时间真的是愁死,根本不知道怎么下手,研究了一下代码:之前的人像图片都是一个一个的div定位出来的,不卡才怪..... 看了下加载数据 :首先页面加载粗来就得7s左右,数据加载粗来其实只要1~2s左右,我觉得还是跟高德地图的模板有关系吧 总不可能去改高德地图api

image

第一个接口数据主要是经纬度

又去找了找高德地图关于海量点的东西,最后经过研究,终于给搞出来了 ,贼不卡,废话不多说,直接上代码吧!

setMap中的参数data的是请求的第一个接口的数据:数据为:

image
image

数据长这样子

html:

<div id="container"></div>

js:

setMap:function(zoom,center,data){
       var _this =this;
       var map =new AMap.Map('container', {
           zoom:5,
           center: center,
           zoomEnable:true,          //是否可滚轮缩放
           dragEnable:true,          //是否可拖拽
           resizeEnable:true,      //是否监控地图容器尺寸变化
           keyboardEnable:false,      //键盘控制'↑' '→' '↓' '←'
          doubleClickZoom:false,    //地图是否可通过双击鼠标放大地图

        });

        /*根据健康状态展示不同的图片*/

        var style = [
            {           //健康green01

                url:'../../imgs/mapImages/green01.png',

                anchor:new AMap.Pixel(6, 6),

                size:new AMap.Size(8, 8)

              }, {               //亚健康orange01

                url:'../../imgs/mapImages/orange01.png',

                anchor:new AMap.Pixel(4, 4),

                size:new AMap.Size(8, 8)

            }, {         //疾病red01

                url:'../../imgs/mapImages/red01.png',

                anchor:new AMap.Pixel(3, 3),

                size:new AMap.Size(8, 8)

              }, {     //正在救助nowHelper

                url:'../../imgs/mapImages/nowHelpYellow.png',

                anchor:new AMap.Pixel(3, 3),

                size:new AMap.Size(8, 8)

          }, {     //未知状态blue01

                url:'../../imgs/mapImages/blue01.png',

                anchor:new AMap.Pixel(3, 3),

                size:new AMap.Size(8, 8)
        }
];

        var locationData = [];  //存放经纬度的数组

        var status ='';  //下表对应的样式

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

            var str2 = data[i].location;

            str2 = str2.split(',');  //把经纬度转让数组

            /*判断健康状态*/

            if(data[i].healthLevel ==1){//健康

                status =0;  //根据下标来相对应样式 例如:健康对应style数组中的第0个样式

            }else if (data[i].healthLevel ==2) {//亚健康

                status =1;

            }else if (data[i].healthLevel ==3) {//疾病

                status =2;

            }else if(data[i].healthLevel ==4){//正在救助nowHelper

                status =3;

            }else{//未知状态

                status =4;

            }

/*{lnglat: Array(2),  style: 2}  所需要的数据格式 */

            locationData.push({
                  lnglat: str2,
                 style: status//对应的status相对应的样式style
             })
}


        /* 大量点所对应的方法*/
var mass =new AMap.MassMarks(locationData, {

            opacity:0.8,

            zIndex:111,

            cursor:'pointer',

            style: style

});

        var marker =new AMap.Marker({content:' ', map: map});

        mass.on('mouseover', function (e) {

            marker.setPosition(e.data.lnglat);    //用户相对应的经纬度

            marker.setLabel({content: e.data.name})//用户相对应的名字

        });

        mass.setMap(map);

    }

补充:localtionData的格式 数据必须是这种
微信图片_20181029151201.png

最后在请求接口数据方法中调用setMap方法即可!

希望对你们有帮助,欢迎前来讨论。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容