高德地图vue实现自定义标点热力图效果(缩放时展示不同数据)

news2024/11/19 2:46:50

高德地图插件引入省略。。。样式和vue基础组件省略。。。

  • 如果每个标点没有数值,则可以用点聚合来实现功能
  • 下面例子,每个标点会有按市统计的数值,而且缩放一定程度时,需要展示按省统计的标点,因此需要自定义标点样式和监听地图缩放时间,来实现这个功能
  1. 效果图
    在这里插入图片描述

1.1:初始化时,按省进行统计
在这里插入图片描述
1.2:地图放大一定程度时,按市进行统计
在这里插入图片描述

  1. 同一个经纬点可支持展示两个数据

在这里插入图片描述

  1. 代码实现
<template>
  <div class="infringement-map">
    <div style="height: 100%;" class="card-style">
      <Row style="height: 100%" :gutter="16">
        <Col span="24" style="border-left:1px solid #E5E5E5;height: calc(100% - 30px);">
          <Row class="detail-header " style="background-color: #fff;">
            <span>高德热力图</span>
          </Row>
          <Row class="bg-white top-border" style="padding: 5px 10px;height: 100%" :gutter="22">
            <Col style="height: 100%;" span="24">
              <div class="box-wrap">
                <div id="tort-map"></div>
              </div>
            </Col>
          </Row>
        </Col>
      </Row>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      map: null,
      cityCoordinateList: [],
      provinceCoordinateList: [],
      listData: [],
      markersList: [],
      totalPoints: null,
      isLoadedProvince: false,
      isLoadedCity: false
    }
  },
  mounted() {
    this.initMap()
    this.searchHandler()
  },
  beforeDestroy() {
    this.map && this.map.destroy()
    this.zoomOff()
  },
  methods: {
    searchHandler() {
      const res = {
        'code': 0,
        'message': '',
        'data': {
          'cityCoordinateList': [
            {
              'latitude': '116.405285',
              'longitude': '39.904989',
              'name': '北京',
              'sellerQty': 14,
              'mfrsQty': null
            },
            {
              'latitude': '114.352482',
              'longitude': '36.103442',
              'name': '安阳市',
              'sellerQty': null,
              'mfrsQty': 1
            },
            {
              'latitude': '113.051227',
              'longitude': '23.685022',
              'name': '清远市',
              'sellerQty': 9,
              'mfrsQty': null
            },
            {
              'latitude': '116.587245',
              'longitude': '35.415393',
              'name': '济宁市',
              'sellerQty': 2,
              'mfrsQty': null
            },
            {
              'latitude': '102.712251',
              'longitude': '25.040609',
              'name': '昆明市',
              'sellerQty': null,
              'mfrsQty': 4
            },
            {
              'latitude': '111.975107',
              'longitude': '21.859222',
              'name': '阳江市',
              'sellerQty': 2,
              'mfrsQty': null
            },
            {
              'latitude': '119.649506',
              'longitude': '29.089524',
              'name': '金华市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '120.153576',
              'longitude': '30.287459',
              'name': '杭州市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '114.412599',
              'longitude': '23.079404',
              'name': '惠州市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '113.442973',
              'longitude': '30.328407',
              'name': '仙桃市',
              'sellerQty': 4,
              'mfrsQty': null
            },
            {
              'latitude': '121.472644',
              'longitude': '31.231706',
              'name': '上海',
              'sellerQty': 3,
              'mfrsQty': null
            },
            {
              'latitude': '111.134335',
              'longitude': '37.524366',
              'name': '吕梁市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '108.948024',
              'longitude': '34.263161',
              'name': '西安市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '117.043551',
              'longitude': '30.50883',
              'name': '安庆市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '117.190182',
              'longitude': '39.125596',
              'name': '天津',
              'sellerQty': null,
              'mfrsQty': 1
            },
            {
              'latitude': '117.283042',
              'longitude': '31.86119',
              'name': '合肥市',
              'sellerQty': null,
              'mfrsQty': 1
            },
            {
              'latitude': '118.275162',
              'longitude': '33.963008',
              'name': '宿迁市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '119.452753',
              'longitude': '32.204402',
              'name': '镇江市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '119.527082',
              'longitude': '26.65924',
              'name': '宁德市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '113.132855',
              'longitude': '29.37029',
              'name': '岳阳市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '118.175393',
              'longitude': '39.635113',
              'name': '唐山市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '110.364977',
              'longitude': '21.274898',
              'name': '湛江市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '87.617733',
              'longitude': '43.792818',
              'name': '乌鲁木齐市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '118.11022',
              'longitude': '24.490474',
              'name': '厦门市',
              'sellerQty': 2,
              'mfrsQty': null
            },
            {
              'latitude': '114.085947',
              'longitude': '22.547',
              'name': '深圳市',
              'sellerQty': 4,
              'mfrsQty': null
            },
            {
              'latitude': '82.074778',
              'longitude': '44.903258',
              'name': '博尔塔拉蒙古自治州',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '116.632301',
              'longitude': '23.661701',
              'name': '潮州市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '113.280637',
              'longitude': '23.125178',
              'name': '广州市',
              'sellerQty': 1,
              'mfrsQty': 1
            },
            {
              'latitude': '115.469381',
              'longitude': '35.246531',
              'name': '菏泽市',
              'sellerQty': null,
              'mfrsQty': 1
            },
            {
              'latitude': '109.702392',
              'longitude': '18.638189',
              'name': '保亭黎族苗族自治县',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '126.427839',
              'longitude': '41.942505',
              'name': '白山市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '106.504962',
              'longitude': '29.533155',
              'name': '重庆',
              'sellerQty': 1,
              'mfrsQty': 1
            },
            {
              'latitude': '126.642464',
              'longitude': '45.756967',
              'name': '哈尔滨市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '110.299121',
              'longitude': '25.274215',
              'name': '桂林市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '114.391136',
              'longitude': '27.8043',
              'name': '宜春市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '113.665412',
              'longitude': '34.757975',
              'name': '郑州市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '105.724998',
              'longitude': '34.578529',
              'name': '天水市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '108.320004',
              'longitude': '22.82402',
              'name': '南宁市',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '120.301663',
              'longitude': '31.574729',
              'name': '无锡市',
              'sellerQty': 2,
              'mfrsQty': null
            }
          ],
          'provinceCoordinateList': [
            {
              'latitude': '103.823557',
              'longitude': '36.058039',
              'name': '甘肃省',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '114.502461',
              'longitude': '38.045474',
              'name': '河北省',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '117.000923',
              'longitude': '36.675807',
              'name': '山东省',
              'sellerQty': 2,
              'mfrsQty': 1
            },
            {
              'latitude': '118.767413',
              'longitude': '32.041544',
              'name': '江苏省',
              'sellerQty': 4,
              'mfrsQty': null
            },
            {
              'latitude': '116.405285',
              'longitude': '39.904989',
              'name': '北京',
              'sellerQty': 14,
              'mfrsQty': null
            },
            {
              'latitude': '102.712251',
              'longitude': '25.040609',
              'name': '云南省',
              'sellerQty': null,
              'mfrsQty': 4
            },
            {
              'latitude': '110.33119',
              'longitude': '20.031971',
              'name': '海南省',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '125.3245',
              'longitude': '43.886841',
              'name': '吉林省',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '119.306239',
              'longitude': '26.075302',
              'name': '福建省',
              'sellerQty': 3,
              'mfrsQty': null
            },
            {
              'latitude': '120.153576',
              'longitude': '30.287459',
              'name': '浙江省',
              'sellerQty': 2,
              'mfrsQty': null
            },
            {
              'latitude': '114.298572',
              'longitude': '30.584355',
              'name': '湖北省',
              'sellerQty': 4,
              'mfrsQty': null
            },
            {
              'latitude': '121.472644',
              'longitude': '31.231706',
              'name': '上海',
              'sellerQty': 3,
              'mfrsQty': null
            },
            {
              'latitude': '113.280637',
              'longitude': '23.125178',
              'name': '广东省',
              'sellerQty': 19,
              'mfrsQty': 1
            },
            {
              'latitude': '106.504962',
              'longitude': '29.533155',
              'name': '重庆',
              'sellerQty': 1,
              'mfrsQty': 1
            },
            {
              'latitude': '112.549248',
              'longitude': '37.857014',
              'name': '山西省',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '117.190182',
              'longitude': '39.125596',
              'name': '天津',
              'sellerQty': null,
              'mfrsQty': 1
            },
            {
              'latitude': '115.892151',
              'longitude': '28.676493',
              'name': '江西省',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '108.948024',
              'longitude': '34.263161',
              'name': '陕西省',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '126.642464',
              'longitude': '45.756967',
              'name': '黑龙江省',
              'sellerQty': 1,
              'mfrsQty': null
            },
            {
              'latitude': '113.665412',
              'longitude': '34.757975',
              'name': '河南省',
              'sellerQty': 1,
              'mfrsQty': 1
            },
            {
              'latitude': '87.617733',
              'longitude': '43.792818',
              'name': '新疆维吾尔自治区',
              'sellerQty': 2,
              'mfrsQty': null
            },
            {
              'latitude': '117.283042',
              'longitude': '31.86119',
              'name': '安徽省',
              'sellerQty': 1,
              'mfrsQty': 1
            },
            {
              'latitude': '108.320004',
              'longitude': '22.82402',
              'name': '广西壮族自治区',
              'sellerQty': 2,
              'mfrsQty': null
            },
            {
              'latitude': '112.982279',
              'longitude': '28.19409',
              'name': '湖南省',
              'sellerQty': 1,
              'mfrsQty': null
            }
          ]
        }
      }
      this.removeMarkers()
      // 按市统计的数据
      this.cityCoordinateList = res.data && res.data.cityCoordinateList || []
      // 按省统计的数据
      this.provinceCoordinateList = res.data && res.data.provinceCoordinateList || []
      // 默认按省进行标点,按省汇总标点总数
      this.totalPoints = this.provinceCoordinateList.length
      this.addPoint('province')
    },
    /** ******  地图 start  ********/
    // 初始化地图
    initMap() {
      this.map = new AMap.Map('tort-map', {
        zoom: 4, // 级别
        mapStyle: 'amap://styles/grey',
        center: [116.397428, 39.90923], // 中心点坐标
        viewMode: '3D' // 使用3D视图
      })
      this.map.on('complete', () => {
        console.log('地图渲染完成')
        this.zoomOn()
      })
    },
    addPoint(type) {
      const pointList = type === 'province' ? this.provinceCoordinateList : this.cityCoordinateList
      pointList.forEach(item => {
        const marker = new AMap.Marker({
          position: [item.latitude, item.longitude], // 位置
          // 将 html 传给 content
          content: this.preRenderMarker(item)
        })
        this.map.add(marker) // 添加到地图
        // 记录地图上的标点,移除时需要
        this.markersList.push(marker)
      })
    },
    preRenderMarker(item) {
      // item.mfrsQty:M数据  item.sellerQty:S数据
      const { mfrsQty, sellerQty } = item
      if (mfrsQty && sellerQty) {
        // M数据和S数据都有值,则渲染复合的标记
        return this.renderClusterMarkerBoth(mfrsQty, sellerQty)
      } else if (mfrsQty) {
        // 只有M数据有值,渲染M数据的标点
        return this.renderClusterMarker(mfrsQty, 'mfrsQty')
      } else if (sellerQty) {
        // 只有S数据有值,渲染S数据的标点
        return this.renderClusterMarker(sellerQty, 'sellerQty')
      }
    },
    getBgColorByType (clusterCount, type) {
      let bgColor = null
      // 聚合点配色
      const defaultColor = type === 'mfrsQty' ? [
        '253,187,187',
        '247,162,162',
        '237,127,127',
        '228,93,93',
        '219,60,60'
      ]
        : [
          '195,252,195',
          '178,240,178',
          '153,222,154',
          '130,205,131',
          '120,198,121'
        ]
      if (clusterCount >= 0 && clusterCount < 10) {
        bgColor = defaultColor[0]
      } else if (clusterCount >= 10 && clusterCount < 50) {
        bgColor = defaultColor[1]
      } else if (clusterCount >= 50 && clusterCount < 100) {
        bgColor = defaultColor[2]
      } else if (clusterCount >= 100 && clusterCount < 200) {
        bgColor = defaultColor[3]
      } else if (clusterCount >= 200) {
        bgColor = defaultColor[4]
      }
      return bgColor
    },
    // 单种类型的标点自定义样式
    renderClusterMarker (count, type) {
      // 聚合中点个数
      const clusterCount = count
      const bgColor = this.getBgColorByType(count, type)
      const div = document.createElement('div')
      div.style.backgroundColor = 'rgba(' + bgColor + ',.5)'
      const size = Math.round(10 + Math.pow(clusterCount / this.totalPoints, 1 / 10) * 20)
      div.style.width = div.style.height = size + 'px'
      div.style.border = 'solid 1px rgba(' + bgColor + ',1)'
      div.style.borderRadius = size / 2 + 'px'
      div.innerHTML = clusterCount
      div.style.lineHeight = size + 'px'
      div.style.color = '#ffffff'
      div.style.fontSize = '12px'
      div.style.textAlign = 'center'
      return div
    },
    // 两种类型的标点自定义样式
    renderClusterMarkerBoth (mfrsQty, sellerQty) {
      const bgColorS = this.getBgColorByType(sellerQty, 'sellerQty')
      const bgColorM = this.getBgColorByType(mfrsQty, 'mfrsQty')
      const divDom = document.createElement('div')
      const divS = document.createElement('div')
      const divM = document.createElement('div')

      divDom.style.display = 'flex'

      divS.style.backgroundColor = 'rgba(' + bgColorS + ',.5)'
      divS.style.width = 30 + 'px'
      divS.style.height = 20 + 'px'
      divS.style.lineHeight = 20 + 'px'
      divS.style.border = 'solid 1px rgba(' + bgColorS + ',1)'
      divS.style.borderRadius = '30px 0 0 30px'
      divS.innerHTML = sellerQty
      divS.style.color = '#ffffff'
      divS.style.fontSize = '12px'
      divS.style.textAlign = 'center'

      divM.style.backgroundColor = 'rgba(' + bgColorM + ',.5)'
      divM.style.width = 30 + 'px'
      divM.style.height = 20 + 'px'
      divM.style.lineHeight = 20 + 'px'
      divM.style.border = 'solid 1px rgba(' + bgColorM + ',1)'
      divM.style.borderRadius = '0 30px 30px 0'
      divM.innerHTML = mfrsQty
      divM.style.color = '#ffffff'
      divM.style.fontSize = '12px'
      divM.style.textAlign = 'center'

      divDom.append(divS)
      divDom.append(divM)
      return divDom
    },
    removeMarkers() {
      this.map && this.map.remove(this.markersList)
    },
    // 地图缩放等级改变
    mapZoom() {
      const currentZoom = this.map.getZoom() // 获取当前地图级别
      if (currentZoom <= 4 && !this.isLoadedProvince) {
        // 按省来渲染标记
        this.totalPoints = this.provinceCoordinateList.length
        this.isLoadedProvince = true
        this.isLoadedCity = false
        this.removeMarkers()
        this.addPoint('province')
      } else if (currentZoom > 4 && !this.isLoadedCity) {
        // 按市渲染标记
        this.totalPoints = this.cityCoordinateList.length
        this.isLoadedCity = true
        this.isLoadedProvince = false
        this.removeMarkers()
        this.addPoint('city')
      }
    },
    // 地图缩放事件绑定
    zoomOn() {
      this.map && this.map.on('zoomchange', this.mapZoom)
    },
    // 地图缩放事件解绑
    zoomOff() {
      this.map && this.map.off('zoomchange', this.mapZoom)
    }
  }
}

</script>

<style scoped lang="scss">
.infringement-map {
  height: 100%;
  margin-top: -35px;
  .box-wrap {
    height: 100%;
    #tort-map {
      width: 100%;
      height: 100%;

      .citylist_popup_main {
        .city_content_top {
          box-sizing: content-box;
        }
      }
    }
  }
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1298423.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu中编译出Windows的可执行程序(.exe)

1、前言 在嵌入式开发中&#xff0c;交叉编译是很常见的情况&#xff0c;如果你把Windows电脑也看做一块高性能的开发板&#xff0c;那在Ubuntu中编译出Windows上运行的可执行程序也是很好理解的行为。 2、安装mingw64环境 sudo apt-get install mingw-w64 3、测试编译链是否安…

特权FPGA 学习笔记

存储器可用于异步时钟域的信号处理&#xff0c;双口RAM多用于交互式数据&#xff0c;FIFO多用于单向数据传输&#xff1b;以task的方式封装testbench子程序&#xff0c;以提高复用程度&#xff1b;模板中&#xff0c;vho是vhdl模板&#xff0c;veo是verilog模板&#xff1b;run…

第七届中老越三国丢包狂欢节暨2023年中老越三国(普洱)边境商品交易会新闻发布会在昆明召开

12月8日&#xff0c;第七届中老越三国丢包狂欢节暨2023年中老越三国&#xff08;普洱&#xff09;边境商品交易会新闻发布会在昆明召开。据悉&#xff0c;本届丢包节暨边交会将于2023年12月22日至26日在普洱市江城哈尼族彝族自治县举办。 发布会现场 中老越三国丢包狂欢节自200…

解决 php 连接mysql数据库时报错:Fatal error: Class ‘mysqli’ not found in问题

在使用php对mysql进行连接的过程中&#xff0c;出现了Fatal error: Uncaught Error: Class "mysqli" not found in的问题 解决方案 这个错误通常表示您的PHP代码中缺少MySQL扩展或者没有启用MySQL扩展。 我们首先确认一下PHP环境中已经安装了MySQL扩展。检查一下自己…

v4l2接收流程

内核media驱动目录结构 目录media/driver,子目录说明如下&#xff0c;主要列举本文中使用到的目录 目录功能I2C摄像头&#xff0c;解串器&#xff08;max9296/9295等&#xff09;platform控制器的驱动&#xff0c;例如mipi控制等v4l2_coreioctl 入口等media\common\videobuf2…

哈希表的几种实现方式与比较

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 哈希表概述 哈希表&#xff08;Hash Table&#xff09;是一种常用的数据结构&#xff0c;用于实现键值对的映射关系。它通过哈希函数将键映射到一个特定的索引位置&#xf…

Spring Boot 3 整合 Mybatis-Plus 实现动态数据源切换实战

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

银河麒麟本地软件源配置方法

软件源介绍 软件源可以理解为软件仓库&#xff0c;当需要安装软件时则会根据源配置去相应的软件源下载软件包&#xff0c;此方法的优点是可以自动解决软件包的依赖关系。常见的软件源有光盘源、硬盘源、FTP源、HTTP源&#xff0c;本文档主要介绍本地软件源的配置方法&#xff…

专注抖音短视频账号矩阵系统源头开发---saas工具

抖音账号|短视频矩阵分发系统 | 多账号管理发布 |MVC架 短视频矩阵分发系统是一种可以帮助企业、机构和个人高效分发短视频的工具。随着社交媒体的不断普及&#xff0c;短视频的使用越来越广泛&#xff0c;因此如何快速而准确地将短视频传播到不同的平台和账号上已经成为了一个…

短剧分销平台搭建:短剧变现新模式

短剧作为今年大热的行业&#xff0c;深受大众追捧&#xff01;短剧剧情紧凑&#xff0c;几乎每一集都有高潮剧情&#xff0c;精准击中了当下网友的碎片化时间。 短剧的形式较为灵活&#xff0c;可以轻松融入各种的元素&#xff0c;比如喜剧、悬疑、爱情等&#xff0c;可以满足…

一加 12 Pop-up快闪活动来袭,十城联动火爆开启

12 月 9 日&#xff0c;一加 12 Pop-up 快闪活动在北京、深圳、上海、广州等十城联动开启&#xff0c;各地加油欢聚快闪现场&#xff0c;抢先体验与购买一加 12。作为一加十年超越之作&#xff0c;一加 12 全球首发拥有医疗级护眼方案和行业第一 4500nit 峰值亮度的 2K 东方屏、…

postman常用脚本

一、在参数中动态添加开始时间和结束时间的时间戳 1.先在collection中添加参数&#xff0c;这里的作用域是collection&#xff0c;也可以是其他的任何scope 2.在Pre-request Script 中设定开始时间和结束时间参数&#xff0c;比如昨天和今天的时间戳&#xff0c;下面是js代码 …

彻底搞懂零拷贝技术( DMA、PageCache)

DMA 直接内存访问&#xff08;Direct Memory Access&#xff09; 什么是DMA&#xff1f; 在进行数据传输的时候&#xff0c;数据搬运的工作全部交给 DMA 控制器&#xff0c;而 CPU 不再参与&#xff0c;可以去干别的事情。 传统I/O 在没有 DMA 技术前&#xff0c;全程数据…

【图论笔记】克鲁斯卡尔算法(Kruskal)求最小生成树

【图论笔记】克鲁斯卡尔算法&#xff08;Kruskal&#xff09;求最小生成树 适用于 克鲁斯卡尔适合用来求边比较稀疏的图的最小生成树 简记&#xff1a; 将边按照升序排序&#xff0c;选取n-1条边&#xff0c;连通n个顶点。 添加一条边的时候&#xff0c;如何判断能不能添加…

链表OJ—相交链表

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 1、相交链表的题目&#xff1a; 方法讲解&#xff1a; 图文解析&#xff1a; 代码实现&#xff1a; 总结 前言 世上有两种耀眼的光芒&#xff0c;一种是正在升…

《PySpark大数据分析实战》图书上线啦

《PySpark大数据分析实战》图书上线啦 《PySpark大数据分析实战》图书上线啦特殊的日子关于创作关于数据关于Spark关于PySpark关于图书/专栏 《PySpark大数据分析实战》图书上线啦 特殊的日子 不知不觉一转眼入驻CSDN已经满一年了&#xff0c;这真是一个充满意义的特殊的日子&…

SystemUI下拉通知菜单栏定时自动隐藏

前言 在系统应用开发过程中&#xff0c;常常遇到一些特殊的需求&#xff0c;Android原生的应用并无此适配&#xff0c;此时需要对系统应用进行定制化开发。 目前遇到的这样一个需求&#xff1a;下拉通知菜单栏时&#xff0c;定时8秒后自动关闭通知菜单栏。通知菜单栏为Sytstem…

如何用Python编写俄罗斯方块Tetris游戏?

在本文中&#xff0c;我们将用Python代码构建一个令人惊叹的项目&#xff1a;俄罗斯方块游戏。在这个项目中&#xff0c;我们将使用pygame库来构建游戏。要创建此项目&#xff0c;请确保您的系统中安装了最新版本的Python。让我们开始吧&#xff01; Pygame是一组跨平台的Pyth…

Mysql研学-认识与安装

一 数据库 1 Java的数据存储技术 ① 变量:一个数据存储空间的表示 ② 数组:存储一组相同数据类型的"容器" ③ 集合:存储一组任意引用数据类型的"容器" ④ 配置文件: .properties:基于Properties集合存储(Map集合的具体实例) .xml文件:基于标签存储数据…

centos7 安装 mysql8 详细步骤记录

下载 mysql 8 更新系统&#xff1a; sudo yum update 添加 MySQL Yum存储库&#xff1a; sudo rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm 安装 MySQL 8&#xff1a; sudo yum install mysql-server 重置密码 查看初始密码&#xff1…