垃圾车地图设计

news/2025/2/27 17:32:00/文章来源:https://www.cnblogs.com/wangtoday/p/18741558
  1. 技术框架

    • 高德地图webJs2.0的调用
  2. 业务场景:

    • 展示区域内实时的垃圾车转运情况
  3. 页面设计:

    • 小区页面展示
    • 中转站页面展示:
      • 地图模块调用
      • 右上角垃圾车数据展示
        • 展示内容:车牌号,垃圾车的状态,垃圾车的容量,预测到达时间等
      • 中间一个时间段筛选框进行不同时间段数据的查询,同时和中转的数据进行联动。(备注:与预测功能的实现关联其实不大,主要作用于模拟数据的演示)
      • 满载消息提示弹窗
      • 车辆图标,中转站图标标记 -(点标记)
        • 展示内容:点击可以查看对应类型图标的详情信息
        • 车辆图标:车牌号,驾驶员,辅助工以及已收集桶数
        • 中转站图标:中转站名称,详细地址,当前存储数量(可用于满载预警),预计多长时间以后满载
        • 覆盖图标点击事件实现思路:点击事件实现
      • 垃圾车行驶路径绘制 -(线标记)
        • 展示内容:车辆行驶轨迹(目前没有进行已行驶路径和将要形式路径的区分
        • 轨迹连线实现思路:线绘制
    • 待优化部分:
      • 满载预警通知的有效形式
      • 垃圾车轨迹展示?垃圾车朝向实现?
  4. 相关实现场景:

    • 样式隔离:组件样式和全局样式不会相互影响
    • css实现一个发光的红点和绿点
      span.red-dot {display: inline-block;width: 7.5px;height: 7.5px;border-radius: 50%;margin: 5px;background-color: red;box-shadow: 0 0 5px 2.5px rgba(255, 0, 0, 0.5);
      }span.green-dot {display: inline-block;width: 7.5px;height: 7.5px;border-radius: 50%;margin: 5px;background-color: green;box-shadow: 0 0 5px 2.5px rgba(0, 255, 0, 0.5);
      }
      
    • css实现底部出现一个圆形阴影
      .custom-content-car {position: relative; /* 为伪元素的定位提供参考 */display: inline-block; /* 使容器仅包裹内容 */
      }.custom-content-car img {display: block; /* 去除图片下方的间隙 */position: relative; /* 确保图片在阴影之上 */z-index: 1; /* 提高图片的层级 */
      }.custom-content-car::after {content: ''; /* 伪元素必须有 content 属性 */position: absolute;bottom: -10px; /* 调整阴影的垂直位置 */left: 50%;transform: translateX(-50%) scaleY(0.2); /* 水平居中并压扁阴影 */width: 80%; /* 阴影的宽度 */height: 20px; /* 阴影的初始高度 */background-color: rgba(0, 0, 0, 0.3); /* 阴影的颜色和透明度 */border-radius: 50%; /* 使阴影呈现圆形 */filter: blur(10px); /* 模糊阴影边缘 */z-index: 0; /* 确保阴影在图片下方 */
      }
      
    • js、css实现点击图标展示弹窗,同时该弹窗跟随点击对象出现
      <!-- 弹窗部分 -->
      <div class="popup"><div class="popup-content"><span class="close">&times;</span><p>车牌号: 粤A12345</p></div>
      </div>
      /* 弹窗样式 */
      .popup {display: none;position: fixed;z-index: 2;left: 0;top: 0;width: 100%;height: 100%;overflow: auto;background-color: rgba(0, 0, 0, 0.4);
      }
      .popup-content {background-color: #fefefe;margin: 15% auto;padding: 20px;border: 1px solid #888;width: 30%;position: relative;
      }
      .close {color: #aaa;float: right;font-size: 28px;font-weight: bold;
      }
      .close:hover,
      .close:focus {color: black;text-decoration: none;cursor: pointer;
      }
      
      // 点击弹窗外部区域时隐藏弹窗
      window.addEventListener('click', function (event) {if (event.target === popup) {popup.style.display = 'none';}
      });
      // 点击关闭按钮时隐藏弹窗
      closeBtn.addEventListener('click', function () {popup.style.display = 'none';
      });
      // 更新弹窗位置的函数
      function updatePopupPosition() {const truckRect = garbageTruck.getBoundingClientRect();const popupContent = popup.querySelector('.popup-content');const popupRect = popupContent.getBoundingClientRect();const left = truckRect.left + truckRect.width / 2 - popupRect.width / 2;const top = truckRect.top - popupRect.height - 10;popup.style.left = left + 'px';popup.style.top = top + 'px';
      }
      
      • 位置更新不及时问题:使用 $nextTick 确保在 DOM 更新完成后再获取 popupContent 的尺寸信息。
    • 弹窗带个箭头
      <!-- 弹窗部分 -->
      <div id="popup" class="popup"><div class="popup-content"><span class="close">&times;</span><p>车牌号: 粤A12345</p></div><div class="popup-arrow"></div>
      </div>
      /* 弹窗箭头样式 */
      .popup-arrow {position: absolute;bottom: -10px;left: 50%;transform: translateX(-50%);width: 0;height: 0;border-left: 10px solid transparent;border-right: 10px solid transparent;border-top: 10px solid #fff;
      }
      
    • Tailwind
      • Tailwind CSS的hover写法:只能一个个写,不能连到一起。如:
      <div class="hover:bg-blue-500 hover:text-white">Hover over me!
      </div>
      
      • Tailwind CSS的最后一个子元素选择
      <li class="last:rounded-b"></li>
      
    • HTML 实体符号写法
      • 在 HTML 文档中,当你需要显示特殊字符(如乘法符号)而不是其 HTML 编码时,可以使用这些实体符号。&times; 会在网页上渲染为一个乘法符号“×”
      • 空格:&nbsp;
    • 如何封装一个消息系统的消息弹窗提示?
    • 动态class匹配问题

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CNC数控机床运行状态参数采集联网 对接软件MES 系统

IP 端口 TCP端口 流程任务 当前位置或者目标位置及描述 状态 需要接口内容 请求地址-AGV 请求AGV参数 请求AGV返回信息 PLC-地址 写入PLC值 读取PLC值 EDM-地址 写入EDM值 读取EDM值进入上下料进程 进入EDM上料台动作-动作 即将进入EDM上料台 "1.达…

Redis+Docker集群部署

机器故障了怎么办? Redis 是内存数据库,我们知道可以通过持久化机制,保存快照或者保存记录日志的方式,将数据持久化到磁盘。但是,如果机器故障了或磁盘坏了,数据就不就全没了吗?这种情况应该怎么办呢?别担心,考虑主从模式。 主从模式 给主节点 Master 配置一个从节点 …

【T20天正电气V10.0软件下载与安装教程】

1、安装包 扫描下方二维码关注「软知社」,后台回复【024】三位数字即可免费获取分享链接,无广告拒绝套路; 2、安装教程双击T20天正电气V10.0安装包,弹窗安装对话框选择我接收,点击下一步选择安装位置,点击下一步点击下一步等待安装进度完成安装完成,点击完成按钮点击下…

windows底层激活破解一步到位,TSforge也太暴力了!

windows底层激活破解一步到位,TSforge也太暴力了! windows底层激活破解一步到位,TSforge也太暴力了! 微软系统一直是需要收费的,也是电脑用户们经常遇到的问题,市面上也有很多工具, 但是今天的工具是最新的且**呼声最高、最彻底的**,需要的话赶紧保存下来,实际使用只需…

No.23 CSS--定位

一、定义position属性指定了元素的定位类型。其中,绝对定位和固定定位会脱离文档流. 设置定位之后:可以使用四个方向值进行调整位置:Ieft、top、right、bottom.二、相对定位<head><meta charset="UTF-8"><meta name="viewport" content=&q…

机器人保养指南周期性检修

机器人保养指南——那智不二越机器人日常维护、专业维修与周期性检修在进行那智不二越机器人的日常检查、维修、部件更换或任何其他相关作业时,首要且至关重要的一步是确保已切断电源,只有在完全断电的情况下,方可安全地进行后续操作。此外,还应在一次电源等关键位置设置明…

OERV兴趣探索:模拟器移植

最近看了很多开源项目,主要都集中在模拟器方面,我指的是游戏模拟器比如GameBoy或者PlayStation这一类。现在想玩这系列的游戏可以在手机或者电脑下载相应的模拟器,并且获取对应的ROM文件,不过也有一些模拟器是可以运行在Linux上面的,为了进一步探索,我选择了相对较小的项…

HTTP协议与RESTful API实战手册(二):用披萨店故事说透API设计奥秘

title: HTTP协议与RESTful API实战手册(二):用披萨店故事说透API设计奥秘 🍕 date: 2025/2/27 updated: 2025/2/27 author: cmdragon excerpt: 📦 本系列第二篇通过披萨店创业的完整案例,手把手教你: 用外卖订单理解HTTP协议细节 5个RESTful设计常见误区与修正方案 …

全局注册svg批量自动引入,动态修改svg以及样式配置问题

1.安装依赖npm i vite-plugin-svg-icons2.文件存放svg 3.全局组件svg-icon(直接放到全局组件目录下)<template><svg class="svg-icon"><use :xlink:href="`#icon-${props.name}`" class="mySVG":style="stroke: + props.…

msyql中单表语句

二、聚合函数 (1)max 最小值 select max(math) from student (2)min 最大值 select min(math) from student (3)sum 总数 select sum(math) from student (4)avg平均数 select avg(math) from student (5)count 统计个数 select count(math) from stu…

Java SpringBoot实现简易扫码登录流程 附项目代码

SpringBoot实现简易扫码登录流程,附项目代码先总结流程:移动端请求扫码登录,服务端生成二维码并缓存二维码ID和状态,将二维码的Base64格式返回给前端展示; PC端页面轮询检查二维码状态; 手机扫码后调用扫码接口,携带移动端的Token和二维码ID请求服务端,服务端根据扫码的…

Salesforce宣布2025年不招工程师,技术岗位真的会消失吗?

Salesforce CEO Marc Benioff 最近放出了一条让科技圈热议的消息:2025年,Salesforce将不再招聘新的软件工程师。作为全球最大的CRM软件提供商之一,这一决定引发了许多人对AI对就业市场影响的思考。 AI改变工作模式,工程师岗位需求减少 Marc Benioff 在采访中透露,2024年,…