mapbox进阶,使用点类型geojson加载symbol符号图层,用于标注带图标的注记,且文字居中在图标内,图标大小自适应文字

news2025/3/5 8:57:55

👨‍⚕️ 主页: gis分享者
👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅!
👨‍⚕️ 收录于专栏:mapbox 从入门到精通

文章目录

  • 一、🍀前言
    • 1.1 ☘️mapboxgl.Map 地图对象
    • 1.2 ☘️mapboxgl.Map style属性
    • 1.3 ☘️symbol符号图层样式
    • 1.4 ☘️addImage地图添加标注图片
  • 二、🍀使用点类型geojson加载symbol符号图层,标注带图标的注记
    • 1. ☘️实现思路
    • 2. ☘️代码样例


一、🍀前言

本文详细介绍如何基于mapbox-gl v3.*.* 版本,使用点类型geojson加载symbol符号图层,用于标注带图标的注记,且文字居中在图标内,图标大小自适应文字,亲测可用。希望能帮助到您。一起学习,加油!加油!

1.1 ☘️mapboxgl.Map 地图对象

mapboxgl.Map 地图对象。
构造函数:
new Map class(options: Object)
本例使用属性:
在这里插入图片描述

1.2 ☘️mapboxgl.Map style属性

本例使用属性:

  • version:版本号,当前固定值为8。
  • sources:数据源集合(必填,用于包含一系列数据源
    source,这些数据源提供了在地图上显示的数据)。值为{}对象。{}中的属性名是数据源的名称。
    每个数据源 source 有的属性:
    type:数据源类型
    tiles:数据源地址
    tileSize:数据源切片大小
  • layers:图层集合(必填,包含了一系列图层 layer,这些图层指定了如何渲染数据源提供的数据)
    每个layer的属性(当前示例用到的):
    id:图层id
    type:图层类型
    source:数据源名称

1.3 ☘️symbol符号图层样式

"layers": [
	{
	"id": "symbol-id", // 唯一 id (必填)
	"type": "symbol", // 类型(必填)
	"metadata": { // 元数据(可选,用于为 layer 附加任意的属性。为避免冲突,建议添加前缀,如 mapbox:)
		"mapbox:name": "test"
	},
	"source": "source-name", // 数据源的名称(除了 layer 的 type 为 background 外,source 必填)
	"source-layer": "source-layer-name", // 数据源的图层(只有数据源 source 的 type 为 vector 时,才能设置 source-layer,其他类型的不可以设置)
	"minzoom": 0, // 最小层级(可选,取值范围为 0 ~ 24。当 style 的 zoom 小于此 minzoom 时,layer 将被隐藏)
	"maxzoom": 24, // 最大层级(可选,取值范围为 0 ~ 24。当 style 的 zoom 大于此 maxzoom 时,layer 将被隐藏)
	"filter": [], // 过滤(可选,用特定的表达式过滤指定的数据源的要素。具体的表达式详见 expression)
	"layout": { // 布局类属性
		"visibility": "visible", // 可见性(可选,可选值为 none、visible,默认值为 visible)
		"symbol-placement": "point", // 符号的位置(可选,可选值为 point、line、line-center,默认值为 point)
		//	--- point:符号在几何形状的点上
		//	--- line:符号在几何形状的线上(几何形状只能为 LineString 或 Polygon)
		//	--- line-center:符号在几何形状的线的中心点上(几何形状只能为 LineString 或 Polygon)
		"symbol-spacing": 250, // 符号之间的距离(可选,值 >= 1,默认值为 250,单位:像素。只有 symbol-placement 为 line 时才有效)
		"symbol-avoid-edges": false, // 是否避免边缘冲突(可选,默认值为 false。当为 true 时,符号不会超过切片的边缘)
		"symbol-sort-key": 1, // 排序的参考值(可选,无默认值。值越大,越在上方)
		"symbol-z-order": "auto", // z 轴上的顺序控制(可选,可选值为 auto、viewport-y、source,默认值为 auto)
		//	图标类属性(需要设置 icon-image)
		"icon-image": "", // 图标的图片(可选,这里填写在 sprite 雪碧图中图标名称)
		"icon-size": 1, // 图标的大小(可选,值 >= 0,默认值为 1。这里实际上是图标对应的原始图片的大小的缩放比例。值为 1 表示图标大小为原始图片的大
		"icon-padding": 2, // 图标的外边距(可选,值 >= 0,默认值为 2。可用于碰撞检测)
		"icon-offset": [0, 0], // 图标的偏移量(可选,默认值为 [0, 0])
		"icon-anchor": "center", // 图标与锚点的位置关系(可选,可选值为 center、left、right、top、bottom、top-left、top-right、bottom-left、bottom-right
		"icon-rotation": 0, // 图标的顺时针旋转角度(可选,默认值为 0,单位:角度)
		"icon-allow-overlap": false, // 是否允许图标重叠(可选,默认值为 false。当值为 true 时,图标即使和其他符号触碰也会显示)
		"icon-ignore-placement": false, // 是否忽略图标位置(可选,默认值为 false。当值为 true 时,其他符号即使与此图标触碰也会显示)
		"icon-optional": false, // 图标是否可不显示(可选,默认值为 false。当值为 true 时,如果图标与文本标签碰撞,则显示文本标签)
		"icon-text-fit": "none", // 图标与文本的大小适应关系(可选,可选值为 none、width、height、both,默认值为 none)
		//	--- none:图标按其本身的比例显示
		//	--- width:图标在 x 轴上缩放以适应文本的宽度
		//	--- height:图标在 y 轴上缩放以适应文本的高度
		//	--- both:图标在 x 和 y 轴上缩放以适应文本的宽高
		"icon-text-fit-padding": [0, 0, 0, 0], // 图标与文本的内边距(可选,默认值为 [0,0,0,0],单位:像素)
		"icon-keep-upright": false, // 当 icon-rotation-alignment 为 map,且 symbol-placement 为 line 或者 line-center 时,设置为 true 的话,可以避免图标
		"icon-rotation-alignment": "auto", // 地图旋转时图标的对齐方式(可选,可选值为 map、viewport、auto,默认值为 auto)
		//	--- map:当 symbol-placement 为 point 时,图标与地图的东西方向对齐;当 symbol-placement 为 line 时,图标的 x 轴和线对齐
		//	--- viewport:图标的 x 轴和视口的 x 轴对齐
		//	--- auto:当 symbol-placement 为 point 时,和 viewport 一致;当 symbol-placement 为 line 时,和 map 一致
		"icon-pitch-alignment": "auto", // 地图倾斜时图标的对齐方式(可选,可选值为 map、viewport、auto,默认值为 auto)
		//	--- map:图标的 x 轴与地图平面对齐
		//	--- viewport:图标的 x 轴和视口的 x 轴对齐
		//	--- auto:当 symbol-placement 为 point 时,和 viewport 一致;当 symbol-placement 为 line 时,和 map 一致
		//	文本类属性(需要指定 text-field)
		"text-rotation-alignment": "auto", // 与 icon-rotation-alignment 类似
		"text-pitch-alignment": "auto", // 与 icon-pitch-alignment 类似
		"text-field": "", // 文本所对应的字段(可选,默认值为 "")
		"text-font": ["Open Sans Regular","Arial Unicode MS Regular"], // 文本的字体集合(可选,默认值为 ["Open Sans Regular","Arial Unicode MS Regul
		"text-size": 16, // 文本的大小(可选,默认值为 16,单位:像素)
		"text-max-width": 10, // 文本的最大宽度,超过则折行(可选,默认值为 10,单位:ems)
		"text-line-height": 1.2, // 文本的行高(可选,默认值为 1.2,单位:ems)
		"text-letter-spacing": 0, // 文本的字符间距(可选,默认值为 0,单位:ems)
		"text-justify": "center", // 文本的水平对齐方式(可选,可选值为 auto、left、center、right。默认值为 center)
		"text-anchor": "center", // 文本与锚点的位置关系(可选,可选值为 center、left、right、top、bottom、top-left、top-right、bottom-left、bottom-right
		"text-variable-anchor": "center", // 与 text-anchor(优先级更高) 类似,有点不懂
		"text-max-angle": 45, // 当 symbol-placement 为 line 或 line-center 时,文本相邻字符的最大夹角,默认 45 度
		"text-rotate": 0, // 文本的顺时针旋转角度(可选,默认值为 0,单位:角度)
		"text-padding": 2, // 文本的外边距(可选,值 >= 0,默认值为 2。可用于碰撞检测)
		"text-keep-upright": false, // 当 icon-rotation-alignment 为 map,且 symbol-placement 为 line 或者 line-center 时,设置为 true 的话,可以避免文本上
		"text-transform": "none", // 文本大小写转换(可选,可选值为 none、uppercase、lowercase,默认值为 none)
		"text-offset": [0, 0], // 图标的偏移量(可选,默认值为 [0, 0])
		"text-radial-offset": 0, // 文本的径向偏移量,优先级比 text-offset 高
		"text-allow-overlap": false, // 是否允许文本重叠(可选,默认值为 false。当值为 true 时,文本即使和其他符号触碰也会显示)
		"text-ignore-placement": false, // 是否忽略文本位置(可选,默认值为 false。当值为 true 时,其他符号即使与此文本触碰也会显示)
		"text-optional": false // 文本是否可不显示(可选,默认值为 false。当值为 true 时,如果文本与图标碰撞,则显示图标)
	},
	"paint": { // 绘制类属性
		 //	图标类属性(需要设置 icon-image)
		"icon-opacity": 1, // 图标的不透明度(可选,取值范围为 0 ~ 1,默认值为 1)
		"icon-color": "#000000", // 图标的颜色(可选,默认值为 #000000)
		"icon-halo-color": "rgba(0,0,0,0)", // 图标的光晕颜色(可选,默认值为 rgba(0,0,0,0))
		"icon-halo-width": 0, // 图标的光晕宽度(可选,值 >= 0,默认值为 0,单位:像素)
		"icon-halo-blur": 0, // 图标的光晕模糊宽度(可选,值 >= 0,默认值为 0,单位:像素)
		"icon-translate": [0, 0], // 图标的平移(可选,通过平移 [x, y] 达到一定的偏移量。默认值为 [0, 0],单位:像素。)
		"icon-translate-anchor": "map", // 图标的平移锚点,即相对的参考物(可选,可选值为 map、viewport,默认为 map)
		//	文本类属性(需要设置 text-field)
		"text-opacity": 1, // 文本的不透明度(可选,取值范围为 0 ~ 1,默认值为 1)
		"text-color": "#000000", // 文本的颜色(可选,默认值为 #000000)
		"text-halo-color": "rgba(0,0,0,0)", // 文本的光晕颜色(可选,默认值为 rgba(0,0,0,0))
		"text-halo-width": 0, // 文本的光晕宽度(可选,值 >= 0,默认值为 0,单位:像素)
		"text-halo-blur": 0, // 文本的光晕模糊宽度(可选,值 >= 0,默认值为 0,单位:像素)
		"text-translate": [0, 0], // 文本的平移(可选,通过平移 [x, y] 达到一定的偏移量。默认值为 [0, 0],单位:像素。)
		"text-translate-anchor": "map", // 文本的平移锚点,即相对的参考物(可选,可选值为 map、viewport,默认为 map)
	}
	}
]

symbol_API
turf_API

1.4 ☘️addImage地图添加标注图片

self.map.loadImage(require('@/assets/buildlabel.png'), function (error, image) {
   if (!error && !self.map.hasImage('label')) {
     self.map.addImage('label', image, {
         stretchX: [[26, 50], [82, 104]], // [[x1, x2], ...] 如果在图层的图像中使用了“icon-text-fit”(图标文本适应)功能,此选项定义了图像中可以水平拉伸的部分。
         content: [25, 12, 104, 47], // [x1, y1, x2, y2] 如果在图层的图像中使用了“icon-text-fit”(图标文本适应)功能,此选项定义了图像中可以被文本字段内容覆盖的部分。这里的(x1, y1)表示该区域的左上角坐标,而(x2, y2)表示该区域的右下角坐标。
         pixelRatio: 2, // 图像中的像素与屏幕上的物理像素之间的比例。
         sdf: false, // 是否应将图像解释为SDF(Signed Distance Field,有符号距离场)图像。默认false
         stretchY: [[0, 0], [0, 0]] // [[y1, y2], ...] 如果在图层的图像中使用了“icon-text-fit”(图标文本适应)功能,此选项定义了图像中可以垂直拉伸的部分。这里的每个[y1, y2]对表示图像中可垂直拉伸区域的起始和结束纵坐标。
     })
   }
 })

二、🍀使用点类型geojson加载symbol符号图层,标注带图标的注记

1. ☘️实现思路

  • 1、引入’mapbox-gl’、'mapbox-gl/dist/mapbox-gl.css’、‘@turf/turf’、‘lodash’文件
  • 2、添加id为map的html页面要素,定义map样式。
  • 3、定义initMap初始化地图方法,方法内创建mapboxgl.Map地图对象map。map绑定‘style.load’事件,在load回调事件内部,调用loadImage和addImage方法加载’@/assets/buildlabel.png’图片,使用turf随机生成200个点位geojson数据points,循环points,循环体内部,元素point属性icon赋值‘label’图片名、属性name赋值为’gis分享者’或者’gis分享者欢迎您的订阅!'。使用points作为数据源添加载symbol符号图层,设置symbol图层相关样式,使用points的的属性icon作为标注图片的名称、name值作为标注的文本。在mounted钩子函数中调用initMap方法。

2. ☘️代码样例

<template>
    <div id='map'></div>
</template>

<script>
  import mapboxgl from 'mapbox-gl'
  import 'mapbox-gl/dist/mapbox-gl.css'
  import _ from 'lodash'
  import * as turf from '@turf/turf'
  export default {
    name: 'MapboxLoadSymbolIconFontLayer',
    data () {
      return {
        map: null
      }
    },
    mounted () {
      this.$nextTick(() => {
        this.initMap()
      })
    },
    methods: {
      initMap () {
        mapboxgl.accessToken = 'mapbox官网注册'
        this.map = new mapboxgl.Map({
          container: 'map',
          zoom: 14,
          minZoom: 0,
          center: [116.4, 39.9],
          pitch: 45,
          style: 'mapbox://styles/mapbox/light-v10'
        })
        let self = this
        this.map.on('load', function () {
          let points = turf.randomPoint(200, { bbox: [116.35432847,39.88637483,116.43224041,39.93922276] })
          self.map.loadImage(require('@/assets/buildlabel.png'), function (error, image) {
            if (!error && !self.map.hasImage('label')) {
              self.map.addImage('label', image, {
                  stretchX: [[26, 50], [82, 104]],
                  content: [25, 12, 104, 47],
                  pixelRatio: 2
              })
            }
          })
          _.forEach(points.features, (point, index)=> {
            point.properties.icon = 'label'
            if (index%2 == 0) {
              point.properties.name = 'gis分享者'
            } else {
              point.properties.name = 'gis分享者欢迎您的订阅!'
            }
          })
          self.map.addLayer({
            'id': 'symbol_id',
            'type': 'symbol',
            'source': {
              'type': 'geojson',
              'data': points
            },
            'layout': {
              'visibility': 'visible', // 可见性(可选,可选值为 none、visible,默认值为 visible)
              'symbol-placement': 'point', // 符号的位置(可选,可选值为 point、line、line-center,默认值为 point)
              //	--- point:符号在几何形状的点上
              //	--- line:符号在几何形状的线上(几何形状只能为 LineString 或 Polygon)
              //	--- line-center:符号在几何形状的线的中心点上(几何形状只能为 LineString 或 Polygon)
              'symbol-spacing': 250, // 符号之间的距离(可选,值 >= 1,默认值为 250,单位:像素。只有 symbol-placement 为 line 时才有效)
              'symbol-avoid-edges': false, // 是否避免边缘冲突(可选,默认值为 false。当为 true 时,符号不会超过切片的边缘)
              'symbol-sort-key': 1, // 排序的参考值(可选,无默认值。值越大,越在上方)
              'symbol-z-order': 'auto', // z 轴上的顺序控制(可选,可选值为 auto、viewport-y、source,默认值为 auto)
              //	文本类属性(需要指定 text-field)
              'text-rotation-alignment': 'auto', // 与 icon-rotation-alignment 类似
              'text-pitch-alignment': 'auto', // 与 icon-pitch-alignment 类似
              'text-field': '{name}', // 文本所对应的字段(可选,默认值为 '')
              'text-font': ['Open Sans Regular','Arial Unicode MS Regular'], // 文本的字体集合(可选,默认值为 ['Open Sans Regular','Arial Unicode MS Regul
              'text-size': 16, // 文本的大小(可选,默认值为 16,单位:像素)
              'text-max-width': 10, // 文本的最大宽度,超过则折行(可选,默认值为 10,单位:ems)
              'text-line-height': 1.2, // 文本的行高(可选,默认值为 1.2,单位:ems)
              'text-letter-spacing': 0, // 文本的字符间距(可选,默认值为 0,单位:ems)
              'text-justify': 'center', // 文本的水平对齐方式(可选,可选值为 auto、left、center、right。默认值为 center)
              'text-anchor': 'center', // 文本与锚点的位置关系(可选,可选值为 center、left、right、top、bottom、top-left、top-right、bottom-left、bottom-right
              'text-max-angle': 45, // 当 symbol-placement 为 line 或 line-center 时,文本相邻字符的最大夹角,默认 45 度
              'text-rotate': 0, // 文本的顺时针旋转角度(可选,默认值为 0,单位:角度)
              'text-padding': 2, // 文本的外边距(可选,值 >= 0,默认值为 2。可用于碰撞检测)
              'text-keep-upright': false, // 当 icon-rotation-alignment 为 map,且 symbol-placement 为 line 或者 line-center 时,设置为 true 的话,可以避免文本上
              'text-transform': 'none', // 文本大小写转换(可选,可选值为 none、uppercase、lowercase,默认值为 none)
              'text-offset': [0, 0], // 图标的偏移量(可选,默认值为 [0, 0])
              'text-radial-offset': 0, // 文本的径向偏移量,优先级比 text-offset 高
              'text-allow-overlap': false, // 是否允许文本重叠(可选,默认值为 false。当值为 true 时,文本即使和其他符号触碰也会显示)
              'text-ignore-placement': false, // 是否忽略文本位置(可选,默认值为 false。当值为 true 时,其他符号即使与此文本触碰也会显示)
              'text-optional': false, // 文本是否可不显示(可选,默认值为 false。当值为 true 时,如果文本与图标碰撞,则显示图标)
              //	图标类属性(需要设置 icon-image)
              'icon-image': '{icon}', // 图标的图片(可选,这里填写在 sprite 雪碧图中图标名称)
              'icon-size': 1, // 图标的大小(可选,值 >= 0,默认值为 1。这里实际上是图标对应的原始图片的大小的缩放比例。值为 1 表示图标大小为原始图片的大
              'icon-padding': 2, // 图标的外边距(可选,值 >= 0,默认值为 2。可用于碰撞检测)
              'icon-offset': [0, 0], // 图标的偏移量(可选,默认值为 [0, 0])
              'icon-anchor': 'center', // 图标与锚点的位置关系(可选,可选值为 center、left、right、top、bottom、top-left、top-right、bottom-left、bottom-right
              'icon-rotation': 0, // 图标的顺时针旋转角度(可选,默认值为 0,单位:角度)
              'icon-allow-overlap': false, // 是否允许图标重叠(可选,默认值为 false。当值为 true 时,图标即使和其他符号触碰也会显示)
              'icon-ignore-placement': false, // 是否忽略图标位置(可选,默认值为 false。当值为 true 时,其他符号即使与此图标触碰也会显示)
              'icon-optional': false, // 图标是否可不显示(可选,默认值为 false。当值为 true 时,如果图标与文本标签碰撞,则显示文本标签)
              'icon-text-fit': 'both', // 图标与文本的大小适应关系(可选,可选值为 none、width、height、both,默认值为 none)
              //	--- none:图标按其本身的比例显示
              //	--- width:图标在 x 轴上缩放以适应文本的宽度
              //	--- height:图标在 y 轴上缩放以适应文本的高度
              //	--- both:图标在 x 和 y 轴上缩放以适应文本的宽高
              'icon-text-fit-padding': [0, 0, 0, 0], // 图标与文本的内边距(可选,默认值为 [0,0,0,0],单位:像素)
              'icon-keep-upright': false, // 当 icon-rotation-alignment 为 map,且 symbol-placement 为 line 或者 line-center 时,设置为 true 的话,可以避免图标
              'icon-rotation-alignment': 'auto', // 地图旋转时图标的对齐方式(可选,可选值为 map、viewport、auto,默认值为 auto)
              //	--- map:当 symbol-placement 为 point 时,图标与地图的东西方向对齐;当 symbol-placement 为 line 时,图标的 x 轴和线对齐
              //	--- viewport:图标的 x 轴和视口的 x 轴对齐
              //	--- auto:当 symbol-placement 为 point 时,和 viewport 一致;当 symbol-placement 为 line 时,和 map 一致
              'icon-pitch-alignment': 'auto' // 地图倾斜时图标的对齐方式(可选,可选值为 map、viewport、auto,默认值为 auto)
              //	--- map:图标的 x 轴与地图平面对齐
              //	--- viewport:图标的 x 轴和视口的 x 轴对齐
              //	--- auto:当 symbol-placement 为 point 时,和 viewport 一致;当 symbol-placement 为 line 时,和 map 一致
              //	文本类属性(需要指定 text-field)
            },
            'paint': {
              //	文本类属性(需要设置 text-field)
              'text-opacity': 1, // 文本的不透明度(可选,取值范围为 0 ~ 1,默认值为 1)
              'text-color': '#000000', // 文本的颜色(可选,默认值为 #000000)
              'text-halo-color': '#FF0000', // 文本的光晕颜色(可选,默认值为 rgba(0,0,0,0))
              'text-halo-width': 0, // 文本的光晕宽度(可选,值 >= 0,默认值为 0,单位:像素)
              'text-halo-blur': 0, // 文本的光晕模糊宽度(可选,值 >= 0,默认值为 0,单位:像素)
              'text-translate': [0, 0], // 文本的平移(可选,通过平移 [x, y] 达到一定的偏移量。默认值为 [0, 0],单位:像素。)
              'text-translate-anchor': 'map', // 文本的平移锚点,即相对的参考物(可选,可选值为 map、viewport,默认为 map)
              //	图标类属性(需要设置 icon-image)
              'icon-opacity': 1, // 图标的不透明度(可选,取值范围为 0 ~ 1,默认值为 1)
              'icon-color': '#000000', // 图标的颜色(可选,默认值为 #000000)
              'icon-halo-color': 'rgba(0,0,0,0)', // 图标的光晕颜色(可选,默认值为 rgba(0,0,0,0))
              'icon-halo-width': 0, // 图标的光晕宽度(可选,值 >= 0,默认值为 0,单位:像素)
              'icon-halo-blur': 0, // 图标的光晕模糊宽度(可选,值 >= 0,默认值为 0,单位:像素)
              'icon-translate': [0, 0], // 图标的平移(可选,通过平移 [x, y] 达到一定的偏移量。默认值为 [0, 0],单位:像素。)
              'icon-translate-anchor': 'map', // 图标的平移锚点,即相对的参考物(可选,可选值为 map、viewport,默认为 map)
            }
          })
        })
      }
    }
  }
</script>

<style scoped>
    #map{
        height: 100vh;
        width: 100vw;
    }
</style>

效果如下:
在这里插入图片描述

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

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

相关文章

布隆过滤器(附带位图讲解)

提到位图&#xff0c;我们首先想到的应该是它的两面定义&#xff1a; 位图图像&#xff08;bitmap&#xff09;&#xff0c;亦称为点阵图或栅格图像&#xff0c;是由称作像素&#xff08;图片元素&#xff09;的单个点组成的。位图是指内存中连续的二进制位&#xff0c;用于对…

CC++的内存管理

目录 1、C/C内存划分 C语言的动态内存管理 malloc calloc realloc free C的动态内存管理 new和delete operator new函数和operator delete函数 new和delete的原理 new T[N]原理 delete[]的原理 1、C/C内存划分 1、栈&#xff1a;存有非静态局部变量、函数参数、返回…

【商城实战(2)】商城架构设计:从底层逻辑到技术实现

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…

USB 模块 全面解析(一)

本文是我整理的一些 USB 的学习心得&#xff0c;希望能对大家有所帮助。 文章目录 前言&#x1f352; USB 基本概述&#x1f352; USB 结构框架&#x1f349;硬件框架&#x1f349; 软件框架 &#x1f352; USB 电气信号&#x1f349; USB 硬件线路&#x1f349; 信号电平&…

xr-frame 3D Marker识别,扬州古牌坊 3D识别技术稳定调研

目录 识别物体规范 3D Marker 识别目标文件 map 生成 生成任务状态解析 服务耗时&#xff1a; 对传入的视频有如下要求&#xff1a; 对传入的视频建议&#xff1a; 识别物体规范 为提高Marker质量&#xff0c;保证算法识别效果&#xff0c;可参考Marker规范文档 Marker规…

拆一拆吉利普及高阶智驾的盲盒

吉利银河后续所有的全新和改款车型都会搭载千里浩瀚不同级别的智驾系统&#xff1b; 既然银河都标配了&#xff0c;定位更高的领克大概率也会全系标配&#xff1b; 加上极氪从去年下半年就是全系标配。 这样一来&#xff0c;就是吉利版的「全民智驾」。 一、 「千里浩瀚」&a…

2024四川大学计算机考研复试上机真题

2024四川大学计算机考研复试上机真题 2024四川大学计算机考研复试机试真题 历年四川大学计算机考研复试机试真题 在线评测&#xff1a;https://app2098.acapp.acwing.com.cn/ 分数求和 题目描述 有一分数序列&#xff1a; 2/1 3/2 5/3 8/5 13/8 21/13… 求出这个数列的前 …

基于提示驱动的潜在领域泛化的医学图像分类方法(Python实现代码和数据分析)

摘要 医学图像分析中的深度学习模型易受数据集伪影偏差、相机差异、成像设备差异等导致的分布偏移影响&#xff0c;导致在真实临床环境中诊断不可靠。领域泛化&#xff08;Domain Generalization, DG&#xff09;方法旨在通过多领域训练提升模型在未知领域的性能&#xff0c;但…

深度学习-大白话解释循环神经网络RNN

目录 一、RNN的思想 二、RNN的基本结构 网络架构 ​关键点 三、RNN的前向传播 四、RNN的挑战:梯度爆炸和梯度消失 问题分析 ​示例推导 五、LSTM:RNN的改进 核心组件 ​网络架构 3. LSTM 的工作流程 4. 数学公式总结 5. LSTM 的优缺点 ​优点 ​缺点 6. LSTM 的…

Spring统一格式返回

目录 一&#xff1a;统一结果返回 1&#xff1a;统一结果返回写法 2&#xff1a;String类型报错问题 解决方法 二&#xff1a;统一异常返回 统一异常返回写法 三&#xff1a;总结 同志们&#xff0c;今天咱来讲一讲统一格式返回啊&#xff0c;也是好久没有讲过统一格式返…

软件测试基础:功能测试知识总结

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、测试项目启动与研读需求文档 &#xff08;一&#xff09; 组建测试团队 1、测试团队中的角色 2、测试团队的基本责任 尽早地发现软件程序、系统或产品中…

wheel_legged_genesis 开源项目复现与问题记录

Reinforcement learning of wheel-legged robots based on Genesis System Requirements Ubuntu 20.04/22.04/24.04 python > 3.10 开始配置环境&#xff01; 点击releases后进入&#xff0c;下载对应最新版本的代码&#xff1a; 将下载后的代码包解压到你的自定义路径下&…

qt实践教学(编写一个代码生成工具)持续更新至完成———

前言&#xff1a; 我的想法是搭建一个和STM32cubemux类似的图形化代码生成工具&#xff0c;可以把我平时用到的代码整合一下全部放入这个软件中&#xff0c;做一个我自己专门的代码生成工具&#xff0c;我初步的想法是在下拉选框中拉取需要配置的功能&#xff0c;然后就弹出对…

设置 CursorRules 规则

为什么要设置CursorRules&#xff1f; 设置 CursorRules 可以帮助优化代码生成和开发流程&#xff0c;提升工作效率。具体的好处包括&#xff1a; 1、自动化代码生成 &#xff1a;通过定义规则&#xff0c;Cursor 可以根据你的开发需求自动生成符合规定的代码模板&#xff0c…

AI 芯片全解析:定义、市场趋势与主流芯片对比

1. 引言&#xff1a;什么是 AI 芯片&#xff1f; 随着人工智能&#xff08;AI&#xff09;的快速发展&#xff0c;AI 计算的需求不断增长&#xff0c;从云计算到边缘计算&#xff0c;AI 芯片成为推动智能化时代的核心动力。那么&#xff0c;什么样的芯片才算 AI 芯片&#xff…

Axure高保真Element框架元件库

点击下载《Axure高保真Element框架元件库》 原型效果&#xff1a;https://axhub.im/ax9/9da2109b9c68749a/#g1 摘要 本文详细阐述了在 Axure 环境下打造的一套高度还原 Element 框架的组件元件集。通过对 Element 框架组件的深入剖析&#xff0c;结合 Axure 的强大功能&#…

21.<基于Spring图书管理系统②(图书列表+删除图书+更改图书)(非强制登录版本完结)>

PS&#xff1a; 开闭原则 定义和背景 开闭原则&#xff08;Open-Closed Principle, OCP&#xff09;&#xff0c;也称为开放封闭原则&#xff0c;是面向对象设计中的一个基本原则。该原则强调软件中的模块、类或函数应该对扩展开放&#xff0c;对修改封闭。这意味着一个软件实体…

【2025年后端开发终极指南:云原生、AI融合与性能优化实战】

一、2025年后端开发的五大核心趋势 1. 云原生架构的全面普及 云原生&#xff08;Cloud Native&#xff09;已经成为企业级应用的核心底座。通过容器化技术&#xff08;DockerKubernetes&#xff09;和微服务架构&#xff0c;开发者能够实现应用的快速部署、弹性伸缩和故障自愈…

机器学习(五)

一&#xff0c;多类&#xff08;Multiclass&#xff09; 多类是指输出不止有两个输出标签&#xff0c;想要对多个种类进行分类。 Softmax回归算法&#xff1a; Softmax回归算法是Logistic回归在多类问题上的推广&#xff0c;和线性回归一样&#xff0c;将输入的特征与权重进行…

DeepSeek搭配Excel,制作自定义按钮,实现办公自动化!

今天跟大家分享下我们如何将DeepSeek生成的VBA代码&#xff0c;做成按钮&#xff0c;将其永久保存在我们的Excel表格中&#xff0c;下次遇到类似的问题&#xff0c;直接在Excel中点击按钮&#xff0c;就能10秒搞定&#xff0c;操作也非常的简单. 一、代码准备 代码可以直接询问…