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


    效果:

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

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

  • 相关阅读:
    Spring 框架两大核心 和 日志配置文件 2022-8-5
    Structured Streaming join 操作
    Vue的学习补充
    通过后端数据交互,实现【会议Oa小程序】首页数据渲染
    Latex常用数学字符汇总
    基于Node.js API开发:Error [ERR_HTTP_HEADERS_SENT]
    2386. 找出数组的第 K 大和 (每日一难phase2-day2)
    408知识框架总结——操作系统
    大数据ClickHouse进阶(二十七):ClickHouse服务监控
    神经网络优化算法有哪些,人工神经网络优化算法
  • 原文地址:https://blog.csdn.net/weixin_58528200/article/details/126484638