• 百度地图实现热力图的添加、移除


    效果:

    需求:实现热力图和医院点图叠加显示

    1. watch: {
    2. selectMapKeys: { // 监听选中的checkbox是否发生变化
    3. handler: function (val) {
    4. if (this.earthquakeInfo.id) {
    5. this.addLayers(val)
    6. }
    7. },
    8. deep: true
    9. },
    10. earthquakeInfo: {
    11. handler: function (val) { // 监听地震事件是否被切换
    12. this.mapKeys = val.mapKeys
    13. this.center = {
    14. lng: val.longitude,
    15. lat: val.latitude
    16. }
    17. this.dist = null
    18. this.map.clearOverlays()
    19. // 切换事件后,先清除影响场图层
    20. this.heatMapLayer = null
    21. this.getPlace(val.place) // 获取省市区
    22. this.initMap(true, val.place, true)
    23. },
    24. deep: true
    25. }
    26. },

    地图初始化:

    1. if (!this.map) {
    2. this.map = new BMapGL.Map('map')
    3. this.map.enableScrollWheelZoom(true)
    4. }
    5. this.map.centerAndZoom(new BMapGL.Point(this.center.lng, this.center.lat), this.zoom); //三个参数分别为经度,纬度,缩放等级。

    切换选项:

    1. if (mapKeys.indexOf('effect') !== -1) { // 影响场-热力图
    2. if (!this.heatMapLayer) {
    3. let res = await getEarthquakeSphere({ id: this.earthquakeInfo.einfoId })
    4. var points = res.data
    5. console.log('获取到影响场的数据', points)
    6. if (this.isSupportCanvas()) {
    7. this.sphereData = [];
    8. for (var i = 0; i < points.length; i++) {
    9. var item = points[i];
    10. this.sphereData.push({
    11. geometry: {
    12. type: 'Point',
    13. coordinates: [item.lng, item.lat]
    14. },
    15. properties: {
    16. count: item.count
    17. }
    18. });
    19. }
    20. this.heatDataSet = new mapv.DataSet(this.sphereData);
    21. var options = {
    22. size: 30,
    23. gradient: {
    24. 0.25: 'rgba(0, 0, 255, 1)',
    25. 0.55: 'rgba(0, 255, 0, 1)',
    26. 0.85: 'rgba(255, 255, 0, 1)',
    27. 1: 'rgba(250, 50, 56, 1)'
    28. },
    29. max: 10,
    30. draw: "heatmap",
    31. };
    32. this.options_heatmap = options;
    33. this.heatMapLayer = new mapv.baiduMapLayer(
    34. this.map,
    35. this.heatDataSet,
    36. this.options_heatmap
    37. );
    38. } else {
    39. alert('热力图目前只支持有canvas支持的浏览器,您所使用的浏览器不能使用热力图功能~')
    40. }
    41. }
    42. } else {
    43. if (this.heatMapLayer) {
    44. this.heatMapLayer.destroy();
    45. this.heatMapLayer = null;
    46. }
    47. }

  • 相关阅读:
    Linux安全实验——开关机安全控制
    智能导诊(Intelligent Guidance,IG)源码
    web测试之功能测试常用的方法有哪几种?有什么要点要注意?
    一张图进阶 RocketMQ - 消息发送
    STM32F4---通用定时器更新中断
    Qt消除警告
    声学——声源定位阅读笔记
    js判断一个变量的数据类型
    计算机组成原理 | 输入输出系统
    JS判断浏览器类型
  • 原文地址:https://blog.csdn.net/weixin_58528200/article/details/126484638