当前位置: 首页 > news >正文

cesium+vue3自定义HTML实体弹窗、加高德路网、防实体漂浮、让用户画圆、鹰眼

一、基础使用:Cesium.js基础使用(vue)-CSDN博客

 1、基础路径

为 Cesium 库设置一个全局变量 CESIUM_BASE_URL,用于指定 Cesium 的资源文件(如 WebGL shaders、纹理、字体等)的

示例场景:假设你在开发一个基于 Cesium 的 3D 地球应用,但不想将 Cesium 的资源文件打包到项目中,而是希望通过 CDN 加载资源。

  window.CESIUM_BASE_URL = 'https://cesium.com/downloads/cesiumjs/releases/1.97/Build/Cesium/';

2、Cesium Ion的默认访问令牌

Cesium.Ion.defaultAccessToken = '';  // 赋值你的访问令牌

二、其他配置

 1、HTML自定义实体弹窗

    // 以下代码都在onMounted钩子函数里// 函数用于创建一个新的小点实体和对应的HTML弹窗const createPoint = (id, position, info) => {// 创建小点实体var point = viewer.entities.add({position: position, // 位置point: {// 点的样式pixelSize: 10, // 像素大小},show: false, // 默认隐藏实体});// 创建HTML弹窗元素let element = document.createElement('div');element.className = 'locator';element.innerHTML = `<h3>${info.title}</h3><p>名称:${info.name}</p><p>类型:${info.type}</p><p>时间:${info.time}</p>`;// 设置初始可见性element.style.display = state.eventVisible ? 'block' : 'none';// 将HTML弹窗元素添加到Cesium Viewer容器中viewer.container.appendChild(element);//为弹窗添加点击事件element.addEventListener('click', () => {state.eventModalVisible = true;state.eventId = id;});// 将小点实体和HTML弹窗元素存入相应的集合state.points.push(point);state.pointElements[point.id] = element;return point;};//获取事件点数据const getEventPoint = async () => {state.pointsData = [];let res = await getEventTaskList();if (res.code === 200) {res.data.list.forEach(item => {if (item.f_lng !== null && item.f_lat !== null) {state.pointsData.push({id: item.id,position: Cesium.Cartesian3.fromDegrees(parseFloat(item.f_lng), parseFloat(item.f_lat), 0),info: { title: item.f_leve, name: item.f_name, type: item.f_from_type, time: item.f_create_time },});}});state.pointsData.forEach(function (data) {createPoint(data.id, data.position, data.info);});} else {console.log(res.msg);}};getEventPoint();//当鼠标拖动地图或放大缩小地图时,更新所有HTML弹窗的位置function updateAllElementPositions() {var scene = viewer.scene;// 如果场景模式不是MORPHING,则更新所有HTML弹窗的位置if (scene.mode !== Cesium.SceneMode.MORPHING) {// 遍历所有小点实体,更新对应的HTML弹窗的位置state.points.forEach(function (point) {var canvas = scene.canvas;// 获取小点实体的位置var cartesian = Cesium.Property.getValueOrUndefined(point.position, scene.lastRenderTime);// 将笛卡尔坐标转换为屏幕坐标var pixelPosition = scene.cartesianToCanvasCoordinates(cartesian);// 如果屏幕坐标存在,则更新HTML弹窗的位置if (pixelPosition) {// 获取HTML弹窗元素var element = state.pointElements[point.id];// 设置HTML弹窗元素的位置element.style.left = pixelPosition.x + 'px';element.style.top = pixelPosition.y + 'px';// 检查可见性element.style.display = state.eventVisible ? 'flex' : 'none';}});}}// 监听Cesium场景更新事件,以便在每次渲染时更新所有HTML弹窗的位置viewer.scene.postRender.addEventListener(updateAllElementPositions);// 函数用于更新所有弹窗的可见性function updatePopupVisibility() {Object.values(state.pointElements).forEach(element => {element.style.display = state.eventVisible ? 'block' : 'none';});}//更新弹框显隐watch(() => state.eventVisible,newVal => {updatePopupVisibility();},);
  onUnmounted(() => {//页面卸载时清除事件监听器window.removeEventListener('unload', function () {viewer.scene.postRender.removeEventListener(updateAllElementPositions);});}
    :deep(.locator) {display: flex;flex-direction: column;align-items: center;position: absolute;width: 236px;height: 207px;margin-top: -190px;margin-left: -118px;background: url('/src/assets/images/screen/locator.png') no-repeat center center;padding: 23px 0;cursor: pointer;}

 2、让弹框和相关区域同时显隐

    //该函数用于输入多边形顶点坐标,能够绘制多边形在视图上,多边形背景颜色为红色,边框为黄色function drawPolygon(points, isShow, entities) {let color;if (entities === state.irrigationEntities) {color = Cesium.Color.BLUE.withAlpha(0.5);};var polygon = viewer.entities.add({polygon: {hierarchy: Cesium.Cartesian3.fromDegreesArray(points),material: color,outline: true,},show: isShow,});//将多边形实体ID存入相应的集合entities.push(polygon.id);}//监听showIrrigation,为true时绘制灌区,否则隐藏watch(() => state.showIrrigation,newVal => {if (newVal) {//移除灌区多边形state.irrigationEntities.forEach(id => {viewer.entities.removeById(id);});state.irrigationEntities = [];state.irrigationAreaData.forEach(area => {drawPolygon(area, true, state.irrigationEntities);});} else {//移除灌区多边形state.irrigationEntities.forEach(id => {viewer.entities.removeById(id);});state.irrigationEntities = [];}},);

 3、设置地形关闭,防止漂浮

  • 启用地形:适用于需要展示真实地形的应用场景(如山脉、峡谷等)。
  • 关闭地形:适用于需要简化渲染、提升性能或避免地形干扰的场景。
// 设置地形,关闭
viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider();

注:不关闭地形的话,鼠标拖拽地图移动时,实体会出现类似漂浮的效果(鼠标拖拽一下,实体移动出去更远)

4、鹰眼

    // 创建鹰眼地图的Viewerconst overviewViewer = new Cesium.Viewer(overviewContainer.value, {animation: false, // 禁用动画控件geocoder: false, // 开启地理编码控件homeButton: false, // 禁用主视图控件sceneModePicker: false, // 禁用场景模式切换控件// baseLayerPicker: false, // 禁用底图切换控件navigationHelpButton: false, // 禁用导航帮助按钮timeline: false, // 禁用时间轴控件});// 隐藏底部版权信息overviewViewer._cesiumWidget._creditContainer.style.display = 'none';// 添加高德地图路网overviewViewer.imageryLayers.addImageryProvider(gaodeLayer);// 同步两个地图的视角function syncView(longitude, latitude, height) {// 确保参数是数值类型longitude = parseFloat(longitude);latitude = parseFloat(latitude);height = parseFloat(height);overviewViewer.camera.flyTo({destination: Cesium.Cartesian3.fromDegrees(longitude, latitude, height),orientation: {heading: Cesium.Math.toRadians(0), // 方向角度,单位为弧度pitch: Cesium.Math.toRadians(-90), // 俯仰角度,单位为弧度roll: 0, // 翻滚角度,单位为弧度},duration: 1, // 动画持续时间,单位为秒});}// 设置中心点同样的经纬度syncView(state.longitude, state.latitude, state.height * 5);

 5、添加高德地图路网

显示道路和中文的区域名字:

const gaodeLayer = new Cesium.UrlTemplateImageryProvider({url: 'http://webst02.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8',maximumLevel: 18,});
viewer.imageryLayers.addImageryProvider(gaodeLayer);

 6、让用户画圆

    //开始画圆const startDrawingCircle = () => {//监听鼠标,后一次点击的位置与前一次点击的位置之间的直线为圆的直径。let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);let positions = [];handler.setInputAction(movement => {//获取鼠标点击的位置的笛卡尔坐标let cartesian = viewer.scene.pickPosition(movement.position);//如果cartesian存在且与positions数组中的第一个元素不相等,则将其添加到positions数组中if (cartesian && (!positions.length || !Cesium.Cartesian3.equals(cartesian, positions[0]))) {positions.push(cartesian);if (positions.length === 2) {let center = Cesium.Cartesian3.midpoint(positions[0], positions[1], new Cesium.Cartesian3());let radius = Cesium.Cartesian3.distance(center, positions[0]);var circle = viewer.entities.add({position: center,ellipse: {semiMinorAxis: radius,semiMajorAxis: radius,material: Cesium.Color.RED.withAlpha(0.5),outline: true,outlineColor: Cesium.Color.BLACK,},});positions = [];state.circleEntities.push(circle.id);}}}, Cesium.ScreenSpaceEventType.LEFT_CLICK); //监听state.drawingCircle,当其值为false时,移除handlerwatch(() => state.drawingCircle,value => {if (value) {startDrawingCircle();} else {handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);}},);};

7、让用户画多边形

    //开始画多边形const startDrawingPolygon = () => {let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);let positions = [];let polygon = null;handler.setInputAction(movement => {let cartesian = viewer.scene.pickPosition(movement.position);if (cartesian) {positions.push(cartesian);if (positions.length === 1) {polygon = viewer.entities.add({polygon: {hierarchy: new Cesium.CallbackProperty(() => {return new Cesium.PolygonHierarchy(positions);}, false),material: Cesium.Color.RED.withAlpha(0.5),outline: true,outlineColor: Cesium.Color.BLACK,},});state.polygonEntities.push(polygon.id);} else {polygon.polygon.hierarchy = new Cesium.CallbackProperty(() => {return new Cesium.PolygonHierarchy(positions);}, false);}}}, Cesium.ScreenSpaceEventType.LEFT_CLICK);watch(() => state.drawingPolygon,value => {if (value) {startDrawingPolygon();} else {handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);}},);};

8、隐藏底部版权信息

viewer._cesiumWidget._creditContainer.style.display = 'none';

注:创建Cesium Viewer要在onMounted钩子函数内

9、地图深度检测

确保 3D 场景中物体的遮挡关系正确,避免出现物体穿插或遮挡错误的问题。它是实现真实感渲染的关键技术之一,在地形、建筑、飞行器等场景中尤为重要。

viewer.scene.globe.depthTestAgainstTerrain = true;

10、地图颜色

官方本来提供了多种主题,但是仍然想自定义颜色可如下设置:

viewer.scene.globe.baseColor = Cesium.Color.fromCssColorString('#00115F');
let baseLayer = viewer.imageryLayers.get(0);
baseLayer.show = false;

11、禁用双击事件

双击地图上的某个位置,通常会放大视图并聚焦到该点。

viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);

12、添加动画效果,飞向指定位置

// 添加动画效果,飞向指定位置,写成函数,方便调用function flyToLocation(longitude, latitude, height) {viewer.camera.flyTo({destination: Cesium.Cartesian3.fromDegrees(longitude, latitude, height),orientation: {heading: Cesium.Math.toRadians(0), // 方向角度,单位为弧度pitch: Cesium.Math.toRadians(-90), // 俯仰角度,单位为弧度roll: 0, // 翻滚角度,单位为弧度},duration: 1, // 动画持续时间,单位为秒});}flyToLocation(104.69, 30.2183873102, 5000);

三、学习资料参考(感谢大佬分享):

1、cesium中文网

Animation - Cesium Documentation

2、cesium编程入门 | cesium中文网

3、3.Cesium中实体Entity创建(超详细)_new cesium.entity-CSDN博客

相关文章:

cesium+vue3自定义HTML实体弹窗、加高德路网、防实体漂浮、让用户画圆、鹰眼

一、基础使用&#xff1a;Cesium.js基础使用&#xff08;vue&#xff09;-CSDN博客 1、基础路径 为 Cesium 库设置一个全局变量 CESIUM_BASE_URL&#xff0c;用于指定 Cesium 的资源文件&#xff08;如 WebGL shaders、纹理、字体等&#xff09;的 示例场景&#xff1a;假设你…...

Spring(二)容器-注册

目录 一 定义组件Bean (1)添加组件 (2)获取组件 二 配置类Configuration (1)配置类的作用 三 MVC分层注解 - Controller&#xff1a; - Service&#xff1a; - Repository&#xff1a; 四 批量扫描ComponentScan (1) 默认扫描当前包及其子包 (2) 指定扫描包路径 …...

Java-实现PDF合同模板填写内容并导出PDF文件

可用于公司用户合同导出pdf文件 效果图 一、导入所需要jar包 <!--生成PDF--><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.11</version></dependency><dependency&…...

C# 数据转换

1. 文本框读取byte&#xff0c;ushort格式数据 byte addr; if (byte.TryParse(textBoxAddr.Text, out addr) true) {}2. 字节数组 (byte[]) 转换为 ASCII 字符串 byte[] bytes { 72, 101, 108, 108, 111 }; // "Hello" 的 ASCII 码 string s0 Encoding.ASCII.Ge…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_list_init

ngx_list_init 定义在 src\core\ngx_list.h static ngx_inline ngx_int_t ngx_list_init(ngx_list_t *list, ngx_pool_t *pool, ngx_uint_t n, size_t size) {list->part.elts ngx_palloc(pool, n * size);if (list->part.elts NULL) {return NGX_ERROR;}list->par…...

鸿蒙NEXT开发-元服务和服务卡片的开发

注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&#xff0c;博主会一直更新鸿蒙next相关知识 目录 1. 元服务基本概念 1.1 基本介绍 1.2 元…...

Docker安装Redpandata-console控制台

介绍 Redpanda控制台&#xff0c;这是一个功能强大的Web UI&#xff0c;用于管理和监控您的Redpanda 集群。探索实际示例和场景&#xff0c;以帮助您了解如何利用 Redpanda 控制台实现不同的用例&#xff0c;包括数据可观察性、Redpanda 管理、访问控制和连接。 可对Redpanda…...

DeepSeek Agent 企业应用

DeepSeek Agent 技术是基于深度求索(DeepSeek)大模型构建的智能代理系统,其核心技术架构与应用优势可从以下几个方面进行深度解析: 一、核心技术架构 混合专家模型(MoE)与架构优化 DeepSeek 的模型家族(如DeepSeekMoE、DeepSeek-V3)采用 混合专家系统(MoE) ,通过动…...

vcredist_x64 资源文件分享

vcredist_x64 是 Microsoft Visual C Redistributable 的 64 位版本&#xff0c;用于在 64 位 Windows 系统上运行使用 Visual C 开发的应用程序。它包含了运行这些应用程序所需的运行时组件。 vcredist_x64 资源工具网盘下载链接&#xff1a;https://pan.quark.cn/s/ef56f838f…...

解决redis lettuce连接池经常出现连接拒绝(Connection refused)问题

一.软件环境 windows10、11系统、springboot2.x、redis 6 7 linux&#xff08;centos&#xff09;系统没有出现这问题&#xff0c;如果你是linux系统碰到的&#xff0c;本文也有一定大参考价值。 根本思路就是&#xff1a;tcp/ip连接的保活(keepalive)。 二.问题描述 在spr…...

Mac远程桌面软件哪个好用?

远程桌面软件能帮助我们快速的远程控制另一台电脑&#xff0c;从而提供远程帮助&#xff0c;或者进行远程办公。那么&#xff0c;对macOS系统有什么好用的Mac远程桌面软件呢&#xff1f; 远程看看是一款操作简单、界面简洁的远程桌面软件&#xff0c;支持跨平台操作&#xff0…...

一篇吃透模型:all-MiniLM-L6-v2

MiniLM 是什么&#xff1f; MiniLM 是微软研究院开发的一种轻量级的语言模型&#xff0c;旨在以较小的参数量和计算成本实现与大型语言模型&#xff08;如 BERT&#xff09;相当的性能。它是基于 Transformer 架构的预训练模型&#xff0c;通过深度自注意力蒸馏&#xff08;De…...

深入学习Linux内存管理-缺页异常

1.什么是缺页异常 在Linux虚拟内存管理中,缺页异常(Page Fault) 是CPU在访问虚拟地址时发现对应物理页未就绪时触发的中断。根据触发原因,缺页异常分为两类: 次要缺页(Minor Fault):物理页已存在(如缓存或共享内存),只需建立映射。 主要缺页(Major Fault):需要…...

互推机制在开源AI智能名片2+1链动模式S2B2C商城小程序源码推广中的应用探索

摘要&#xff1a; 在数字化营销时代&#xff0c;开源AI智能名片21链动模式S2B2C商城小程序源码作为一种创新的技术解决方案&#xff0c;正逐步成为企业数字化转型的重要工具。然而&#xff0c;面对激烈的市场竞争&#xff0c;如何高效推广这一前沿技术产品&#xff0c;成为开发…...

SparkSQL全之RDD、DF、DS ,UDF、架构、资源划分、sql执行计划、调优......

1 SparkSQL概述 1.1 sparksql简介 Shark是专门针对于spark的构建大规模数据仓库系统的一个框架Shark与Hive兼容、同时也依赖于Spark版本Hivesql底层把sql解析成了mapreduce程序&#xff0c;Shark是把sql语句解析成了Spark任务随着性能优化的上限&#xff0c;以及集成SQL的一些…...

神经网络 - 激活函数(Maxout 单元)

一、Maxout 单元 Maxout 单元是一种特殊的激活函数&#xff0c;用于神经网络中&#xff0c;其主要思想是通过多个线性变换的最大值来作为神经元的输出&#xff0c;从而提高模型的表达能力和鲁棒性。 1. 数学定义 假设输入为 x&#xff0c;Maxout 单元会计算 k 个线性变换&am…...

【软考-架构】1.3、磁盘-输入输出技术-总线

GitHub地址&#xff1a;https://github.com/tyronczt/system_architect ✨资料&文章更新✨ 文章目录 存储系统&#x1f4af;考试真题输入输出技术&#x1f4af;考试真题第一题第二题 存储系统 寻道时间是指磁头移动到磁道所需的时间&#xff1b; 等待时间为等待读写的扇区…...

专业便捷PDF软件,即开即用

PDF文件因其小巧的体积、便捷的分享与存储方式&#xff0c;以及卓越的安全性&#xff0c;已成为学习、企业及各类机构中不可或缺的文件格式。无论是在学术研究、课程资料、商业报告还是合同文件中&#xff0c;PDF都能有效保持原有的格式和布局&#xff0c;确保内容在不同设备和…...

TEE可信执行环境的安全业务保护方案

基于硬件隔离技术&#xff0c;安全业务可在**TEE&#xff08;可信执行环境&#xff09;**中运行&#xff0c;以保障安全资产的完整性。TEE具备以下核心特点&#xff1a; 跨平台兼容&#xff1a;已集成于多款芯片平台&#xff08;MTK、NXP、RK、Samsung、TI、JLQ、Spreadtrum等…...

smolagents学习笔记系列(番外二)Agent+Ollama分析本地图像与文件

这篇文章是在 smolagents 官方教程结束后的番外篇二&#xff0c;实现了如何使用 smolagents 库 Ollama 调用本地模型对图像与文件进行分析。 【注意】&#xff1a;这篇文章需要你在本地部署Ollama的视觉语言模型&#xff0c;如果你的架构方案是纯线上模式&#xff0c;则可以跳…...

Unity TMP_InputField 多行输入时的高度适应

实现 设定输入框的行类型为多行新建行。 inputField.lineType TMP_InputField.LineType.MultiLineNewline; 进行输入时调整输入框高度。 height inputField.textComponent.preferredHeight offset; if (height < minHeight) {rect.SetSizeWithCurrentAnchors(RectTran…...

学习第九天-栈

栈的定义&#xff1a;栈是一种线性表数据结构&#xff0c;仅允许在表的一端&#xff08;栈顶&#xff09;进行插入&#xff08;入栈&#xff09;和删除&#xff08;出栈&#xff09;操作。没有数据元素时为「空栈」&#xff0c;遵循「后进先出&#xff08;LIFO&#xff09;」原…...

ArcGIS Pro应用指南:如何为栅格图精确添加坐标信息

一、引言 在地理信息系统中&#xff0c;栅格图是一种重要的数据类型。 然而&#xff0c;有时我们从网络上获取的栅格图并不包含坐标信息&#xff0c;这使得它们难以与其他带有坐标信息的数据进行集成和分析。 为了解决这一问题&#xff0c;我们需要对栅格图进行地理配准&…...

[前端] redux-thunk

Ps:这里是react18之后的使用方法 一、场景描述 为什么要使用redux-thunk&#xff1f; Thunk-“a piece of code that does some delayed word”。 官方给的解释是redux reducer必须是不包含副作用&#xff0c;但是真正的应用需要有副作用的逻辑。这个副作用包括异步逻辑、产生…...

委托者模式(掌握设计模式的核心之一)

目录 问题&#xff1a; 举例&#xff1a; 总结&#xff1a;核心就是利用Java中的多态来完成注入。 问题&#xff1a; 今天刷面经&#xff0c;刷到装饰者模式&#xff0c;又进阶的发现委托者模式&#xff0c;发现还是不理解&#xff0c;特此记录。 举例&#xff1a; ​老板​…...

爱吃蟠桃的孙悟空

爱吃蟠桃的孙悟空 真题目录: 点击去查看 E 卷 100分题型 题目描述 孙悟空爱吃蟠桃,有一天趁着蟠桃园守卫不在来偷吃。已知蟠桃园有 N 棵桃树,每颗树上都有桃子,守卫将在 H 小时后回来。 孙悟空可以决定他吃蟠桃的速度K(个/小时),每个小时选一颗桃树,并从树上吃掉 K 个…...

低功耗抄表方案-支持Modbus、DL/T645 及 DL/T698 协议‌电表

这是我测试的一款无线红外抄表器&#xff0c;该无线红外抄表器的功能特点及应用场景可归纳如下&#xff1a; 一、核心功能特性 1.多协议兼容与数据采集 可以采集Modbus、DL/T645 及 DL/T698 协议‌电表的各项数据&#xff0c;兼容国网电表、光伏逆变器等设备&#xff0c;包括…...

【含文档+PPT+源码】基于SpringBoot电脑DIY装机教程网站的设计与实现

项目介绍 本课程演示的是一款 基于SpringBoot电脑DIY装机教程网站的设计与实现&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本…...

Android内存优化指南:从数据结构到5R法则的全面策略

目录 一、APP 内存限制 二、内存的三大问题 2.1、内存抖动(Memory Churn) 2.1.1 频繁创建短生命周期对象 2.1.2 系统API或第三方库的不合理使用 2.1.3 Handler使用不当 2.2、内存泄漏(Memory Leak) 2.2.1 静态变量持有Activity或Context引用 2.2.2 未取消的回调或…...

关于服务器cpu过高的问题排查

1.定位是哪个程序造成的cpu过高 如果有云服务器&#xff0c;就用云服务器自带的监控功能&#xff0c;查时间段 如果没有&#xff0c;则使用&#xff1a; ps -eo pid,comm,pcpu,pmem,cputime --sort-cputime | head -n 100 2.定位到问题 发现是uwsgi的cpu消耗过高&#xff0…...

2024华为OD机试真题-热点网站统计(C++)-E卷-100分

2024华为OD机试最新E卷题库-(C卷+D卷+E卷)-(JAVA、Python、C++) 目录 题目描述 输入描述 输出描述 用例1 用例2 考点 题目解析 代码 c++ 题目描述 企业路由器的统计页面,有一个功能需要动态统计公司访问最多的网页 URL top N。 请设计一个算法,可以高效动态统计 …...

【UCB CS 61B SP24】Lecture 19 20: Hashing Hashing II 学习笔记

本文首先介绍了哈希表中的两大关键概念&#xff1a;哈希函数与哈希码&#xff0c;并使用 Java 实现了一个通过链地址法解决哈希冲突的哈希表。 1. 哈希函数与哈希码 1.1 动态多列表实现整数集合 我们在 Lecture 11 中第一次介绍了集合&#xff08;Set&#xff09;&#xff0…...

一、图形图像的基本概念

文章目录 一、分辨率概念二、图形图像的区别三、位图和矢量图的区别 一、分辨率概念 图形显示计数中的分辨率概念有三种&#xff0c;即屏幕分辨率、显示分辨率和显卡分辨率。它们既有区别又有着密切的联系&#xff0c;对图形显示的处理有极大的影响。 1.屏幕分辨率 显示器分辨…...

【二.提示词工程与实战应用篇】【1.提示词工程入门:AI对话的艺术】

大家好,今天咱们来聊聊一个特别有意思的话题——提示词工程。你可能已经听说过这个词,或者在使用AI工具时不经意间接触过它。但提示词工程到底是什么?它为什么这么重要?咱们今天就来深入探讨一下,看看它是如何影响我们与AI的对话,以及如何在实际应用中发挥作用的。 什么…...

C# IComparer<T> 使用详解

总目录 前言 在 C# 编程中&#xff0c;排序操作是日常开发中不可或缺的一部分。当默认的排序逻辑无法满足需求时&#xff0c;IComparer<T> 提供了一种强大且灵活的解决方案。它允许我们为自定义类型提供特定的比较逻辑。这对于实现排序、搜索和其他需要基于特定规则进行…...

(十 三)趣学设计模式 之 模版方法模式!

目录 一、 啥是模板方法模式&#xff1f;二、 为什么要用模板方法模式&#xff1f;三、 模板方法模式的实现方式四、 模板方法模式的优缺点五、 模板方法模式的应用场景六、 总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博主的讲解方式&a…...

KVM虚拟机磁盘创建探究-2

使用 virt-install 命令自动创建磁盘镜像和使用 qemu-img 手动创建磁盘镜像&#xff0c;在磁盘镜像本身格式和基本功能上是一致的&#xff0c;但在一些特性如初始占用磁盘空间、创建时的可配置性等方面存在区别&#xff0c;下面以 QCOW2 格式磁盘镜像为例进行详细说明。 初始占…...

vite创建vue项目

这里默认node已经安装好能使用npm 检查node版本node -v 执行npm create vitelatest 项目名&#xff0c;按提示选择Vue和语言 cd到项目名文件夹&#xff0c;或者直接用vscode等编辑器打开&#xff0c;执行npm install 启动项目npm run dev 成功界面...

js的简单介绍

一.javascript&#xff08;是什么&#xff09; 是一种运行在客户端(浏览器)的编程语言&#xff0c;实现人机交互效果 作用 网页特效&#xff08;监听客户的一些行为让网页做出对应的反馈&#xff09;表单验证(针对表格数据的合法性进行判断)数据交互(获取后台的数据&#xf…...

GitHub 语析 - 基于大模型的知识库与知识图谱问答平台

语析 - 基于大模型的知识库与知识图谱问答平台 GitHub 地址&#xff1a;https://github.com/xerrors/Yuxi-Know &#x1f4dd; 项目概述 语析是一个强大的问答平台&#xff0c;结合了大模型 RAG 知识库与知识图谱技术&#xff0c;基于 Llamaindex VueJS FastAPI Neo4j 构…...

Spark核心之02:RDD、算子分类、常用算子

spark内存计算框架 一、目标 深入理解RDD弹性分布式数据集底层原理掌握RDD弹性分布式数据集的常用算子操作 二、要点 ⭐️1. RDD是什么 RDD&#xff08;Resilient Distributed Dataset&#xff09;叫做**弹性分布式数据集&#xff0c;是Spark中最基本的数据抽象&#xff0c…...

docker关闭mysql端口映射的使用

需求 项目中的数据库为mysql&#xff0c;如果将端口映射到宿主机上&#xff0c;容易被工具扫描出&#xff0c;且随着国产化的进程推进&#xff0c;mysql将不被允许。为了提高安全性与满足项目需求&#xff0c;这里采用隐藏mysql端口方式&#xff0c;不映射宿主机端口&#xff…...

《从入门到精通:蓝桥杯编程大赛知识点全攻略》(十八)-农夫约翰的奶酪块、蛋糕游戏、奶牛体检

前言 在算法竞赛和编程挑战中&#xff0c;博弈类问题往往要求我们充分理解参与者的行为模式和最优策略&#xff0c;从而提出合理的解法。在这篇博客中&#xff0c;我们将探讨三个有趣且富有挑战性的算法题&#xff1a;农夫约翰的奶酪块、蛋糕游戏和奶牛体检。这些问题涉及不同…...

蓝桥杯 之 图形规律

文章目录 分析组成&#xff0c;找到规律数正方形 在蓝桥杯中&#xff0c;常常会有一些图形的规律的题目需要我们去解决&#xff0c;所以我们需要学会其中的一些方法&#xff0c;我们这样才能解决对应的问题 方法1&#xff1a;直接对n进行拆分方法2&#xff1a;使用递归的思路&a…...

Django 项目模块化开发指南:实现 Vue 风格的组件化

在 Django 项目中,我们经常需要 复用 HTML 代码,避免重复编写相同的模板。例如,博客系统中,博客列表页 和 文章详情页 可能都有相同的 导航栏、模态框、页脚 等。如何像 Vue 一样进行 模块化开发,让代码更加清晰、可维护呢? 本文将详细介绍 Django 的模板继承 和 {% incl…...

在kali linux中kafka的配置和使用

官方文档 一、安装依赖 删除原有的jdk sudo apt remove --purge openjdk-\* sudo apt clean安装 Java (JDK 11) sudo apt install openjdk-11-jdk -y # 验证安装 java -version二、下载并解压 Kafka 下载 Kafka wget https://dlcdn.apache.org/kafka/3.9.0/kafka_2.13-3.9.0.t…...

Spring Bean 作用域设置为prototype在并发场景下是否是线程安全的

在并发场景下&#xff0c;将 Spring Bean 作用域设置为 prototype 通常能在一定程度上保证线程安全&#xff0c;但这并不意味着绝对的线程安全 1. prototype 作用域的特点 在 Spring 中&#xff0c;Bean 的作用域定义了 Bean 的生命周期和可见性。prototype 作用域表示每次从…...

Linux系统编程(三)--Linux环境基础开发工具

文章目录 前言1.软件包的管理1.1 Linux下安装软件的方式1.2 什么是软件包&#xff08;yum&#xff09;1.3 yum具体操作 2. 编辑器vim2.1 vim的基本概念2.2 vim下各模式的切换vim命令模式各命令汇总 2.4批量化注释和批量化去注释2.5 vim配置2.6 普通用户使用sudo提权 3. 编译器g…...

Apache Shiro 反序列化漏洞全解析(Shiro-550 Shiro-721)

一、前言 Apache Shiro 是一个强大的 Java 安全框架&#xff0c;广泛用于用户认证、授权、加密和会话管理。然而&#xff0c;由于 Shiro 在某些版本中存在反序列化漏洞&#xff0c;攻击者可以通过特定手法实现远程代码执行&#xff08;RCE&#xff09;&#xff0c;进而获取服务…...

playbin之Source插件加载流程源码剖析

之前我们有讲解过uridecodebin的setup_source中会创建source插件&#xff0c;关键函数&#xff1a; /* create and configure an element that can handle the uri */ source gen_source_element (decoder); /** Generate and configure a source element.** Returns: (tra…...