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


    效果:

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

    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. }

  • 相关阅读:
    Python装饰器(一次搞清楚)
    Maven项目属性与版本管理
    使用小程序制作一个飞机大战小游戏
    centos httpd
    32.企业快速开发平台Spring Cloud+Spring Boot+Mybatis之Highcharts 固定布局柱形图
    个人笔记--数据库理论 01 关系模型介绍——基于《数据库系统概念》第七版
    仿大众点评——秒杀系统部分04——Redis缓存措施
    c# winform 多线程
    Vue3 使用教程
    基于Spring Boot应用JdbcTemplate操作数据库(查增改删)
  • 原文地址:https://blog.csdn.net/weixin_58528200/article/details/126484638