首页 > 其他分享 >百度地图超级多点卡顿问题整理

百度地图超级多点卡顿问题整理

时间:2024-12-26 17:20:01浏览次数:4  
标签:var item 卡顿 多点 lat lng type id 百度

基于目前项目中百度地图的版本等原因,选择用mavgl解决。相关参考文档如下:

https://lbsyun.baidu.com/solutions/mapvdata

在public的index页面中引入

<script src="https://code.bdstatic.com/npm/mapvgl@1.0.0-beta.51/dist/mapvgl.min.js"></script>
<script src="https://mapv.baidu.com/gl/examples/static/common.js"></script>

然后在地图组件做代码操作如下:

<template>
  <!-- 这是平铺的地图 -->
    <div id="mapEch" class="new2dMap"></div>
</template>

script代码:

<script>
  export default {
    props: {
      zoom: {
        type: Number,
        default: 15
      },
      streetText: {
        type: String,
        default: ''
      },
      uptown_id:{
        type:String,
        default:''
      },
      MapBtnNum:{
        type:Number,
        default:0
      }
    },
    data() {
      return {
        initMap: '',
        pointList: [
          {id:'',lng:118.711996,lat:37.440117,name:'楼宇党群服务中心',type:1,value:100},
          {id:'',lng:118.678279,lat:37.431608,name:'XX护心加油站',type:2,value:100},
          {id:'',lng:118.723086,lat:37.431407,name:'小区党群服务驿站',type:3,value:100},
          {id:'',lng:118.697718,lat:37.446708,name:'康阳社区党群',type:4,value:100},
          {id:'',lng:118.698688,lat:37.432955,name:'天水社区党群',type:4,value:55},
          {id:'',lng:118.710582,lat:37.426421,name:'金融港社区党群',type:4,value:10}
        ],
        lng: 118.711996,
        lat: 37.440117,
      }
    },
    watch:{

    },
    methods: {
      //初始化百度地图
      initBDMap() {
        let that = this, level = this.zoom, point;
        point = new BMapGL.Point(that.lng, that.lat);
        let map = new window.BMapGL.Map("mapEch", {minZoom: 2, maxZoom: 20});
        map.centerAndZoom(point, level);
        map.enableScrollWheelZoom();

        that.initMap = map;
        let pointList = that.pointList
        //画水波纹图层动画
        var view = new mapvgl.View({
            map: map
        });
        var color;
        var data = pointList.map((item, index) => {
            if(item.value<20){
              color = 'rgba(35, 207, 58, 0.5)'
            }else if(item.value<60){
              color = 'rgba(66, 189, 253, 0.5)'
            }else if(item.value>60){
              color = 'rgba(253, 79, 66, 0.5)'
            }
            return {
                geometry: {
                    type: 'Point',
                    coordinates: [item.lng, item.lat]
                },
                color:color,
                size: item.type==4?30:'none',    // 圆的半径
                borderWidth:10,
                borderColor:'#ff0000'
            };

        });
        // RippleLayer
        var bubbleLayer = new mapvgl.CircleLayer({
            type: 'wave',// 绘制带波纹扩散的圆
            radius: r => 1.6 * r, // 扩散半径,支持直接设置和回调两种形式
            duration: 1 / 6, // 周期影响扩散速度,越小越快
            trail: 4,  // 拖尾影响波纹数,越大越多
            color : 'rgba(253, 79, 66, 0.5)'
            // zIndex:-1,
        });
        view.addLayer(bubbleLayer);
        bubbleLayer.setData(data);

        //绘制超级多的点,解决卡顿
        var dataPoint = [],iconImg;
        for(var i = 0;i<pointList.length;i++){
          if (pointList[i].type == 1) {
            //楼宇党群
            iconImg = require("@/assets/cockpit/partyIconBuild.png");
            // iconImg =  pointImg
          } else if (pointList[i].type == 2) {
            //加油站
            iconImg = require("@/assets/cockpit/partyIconOil.png");
          } else if (pointList[i].type == 3) {
            //小区党群
            iconImg = require("@/assets/cockpit/partyIconUptown.png");
          } else if (pointList[i].type == 4) {
            //社区党群
            if(pointList[i].value<20){
              iconImg = require("@/assets/cockpit/partyIconGreen.png");
            }else if(pointList[i].value<60){
              iconImg = require("@/assets/cockpit/partyIconBlue.png");
            }else if(pointList[i].value>60){
              iconImg = require("@/assets/cockpit/partyIconRed.png");
            }
          }
          let item = {
            geometry: {
              type: 'Point',
              coordinates: [pointList[i].lng, pointList[i].lat]
            },
            properties: {
                icon:iconImg,
                text:'这是一个文字的测试',
                fillSize:20
            }
          }
          dataPoint.push(item)
        }
        var layer = new mapvgl.IconLayer({
            width: 53,
            height:77,
            opacity: 1,
            enablePicked: true, // 是否可以拾取
            selectedIndex: -1, // 选中项
            selectedColor: 'rgba(66, 176, 253, 0.1)', // 选中项颜色  autoSelect为true的时候是可选中的,false即为不可选中
            autoSelect: false, // 根据鼠标位置来自动设置选中项
            onClick: (e) => { // 点击事件
                console.log('click', e);
            },
            // onDblClick: e => {
            //     console.log('double click', e);
            // },
            // onRightClick: e => {
            //     console.log('right click', e);
            // }
        });
        view.addLayer(layer);
        layer.setData(dataPoint);
      },
    },
    mounted() {

      this.initBDMap()
    },
  }
</script>

 

标签:var,item,卡顿,多点,lat,lng,type,id,百度
From: https://www.cnblogs.com/menxiaojin/p/18633666

相关文章

  • 你了解百度地图的页面布局方式吗?
    百度地图的页面布局方式在前端开发中涉及多个方面,包括地图的初始化、控件的添加、以及信息窗口和覆盖物的设置等。以下是对百度地图页面布局方式的详细解析:地图初始化:首先,需要在HTML页面中创建一个div元素作为地图容器,并为其设置相应的样式,如宽度、高度等。接着,通过引入百度......
  • 【Python调用百度翻译API进行翻译】
    使用Python调用百度翻译API进行翻译的:importrequestsimporthashlibimportrandomapp_id='your_app_id'#替换为你的AppIDsecret_key='your_secret_key'#替换为你的SecretKeyapi_url='https://fanyi-api.baidu.com/api/trans/vip/translate'de......
  • 记一次百度地图JSAPI的使用
    百度开放平台百度地图开放平台注册登录百度账号进入控制台创建应用,复制你的key(自己找,就在网页上,找不到就转行吧)页面代码引入百度地图JS代码<scripttype="text/javascript"src="https://api.map.baidu.com/api?v=3.0&ak=你的key"></script>在哪引都没事,无论你是Vue项......
  • 百度机器翻译SDK实验
    软件构造实验作业实验名称:班级:信2205-3    学号:20223753    姓名:邓睿智 实验一:百度机器翻译SDK实验一、实验要求实验一:百度机器翻译SDK实验(2024.11.15日完成)  任务一:下载配置百度翻译Java相关库及环境(占10%)。    任务二:了解百度翻译相关功能并进行总结......
  • 如果使用js处理2千万条数据的排序并且页面不卡顿,说说你的方法
    处理两千万条数据的排序并确保页面不卡顿是一个相当大的挑战,特别是在前端开发中。以下是一些建议和方法来处理这种情况:WebWorkers:使用WebWorkers在后台线程中执行排序操作,这样主线程就不会被阻塞,从而确保页面不会卡顿。将数据传递给WebWorker,然后在其中执行排序算法。完......
  • Hexo Next主题集成百度统计
    个人博客地址:HexoNext主题集成百度统计|一张假钞的真实世界。首先,需要在百度统计控制台新增自己的站点。点击“新增网站”按钮:按照要求输入相关信息并保存,页面跳转至代码获取页面。从代码页面中拷贝网站的ID:......
  • 智能工厂的设计软件 三种处理单元(NPU/GPU/CPU)及其在深度学习框架中的作用 之3(百度文库
    Q&A(百度文库)Q1、今天聊聊“智能工厂的设计软件”中的三种处理单元(NPU/GPU/CPU)。一般来说提起这三者就不得不说“深度学习”。那我们就从这里开始。请先给出一个程序例子来说明NPU如何协作CPU和GPU来完成深度学习任务在深度学习任务中,NPU(神经网络处理单元)、GPU(图形处理单元)......
  • 智能工厂的设计软件 三种处理单元(NPU/GPU/CPU)及其在深度学习框架中的作用 之4(百度文库
    Q10、前面的所有编程都是利用三种处理单元(NPU/GPU/CPU)来建造深度学习模型的例子,并且细节度和复杂度,即难度逐步增加,可以分别视为在软件架构、程序框架和编码实现三个不同的阶段要考虑的不同问题(以不同的视角在不同的立场上)。下面我们来看看深度学习本身。本人认为,深度学习......
  • 百度云磁盘CDS、对象存储BOS技术深度解析
    在BAT中,百度在公有云也有很多技术创新。比如2013年引起广泛关注的ARM存储服务器就是一个很好的例子。最近两年,百度云开始发力,其云存储体系有诸多创新之处。目前百度云存储形成了以块存储、对象存储、文件存储为核心,VPN/专线、数据导入、存储网关为支撑的产品体系。其中百度对象存......
  • 服务器nfs挂载不当导致卡顿
    【问题现象】多台NFS客户端,挂载同一服务端目录。新增多台客户端后,发现这NFS客户端系统执行ls或者df-h命令卡顿,但CPU和磁盘监控数据都正常。 【问题排查】原其他客户端服务器linux7.3,nfsstat-m检查版本vers=4.0,nfs-utils版本1.3.0-0.33NFS服务端linux7.4,nfsstat-S版本为nfsv4......