Echarts类似航班选座如何做一个实时监测设备状态的案例:


问题描述:

Echart关于他的地图的配置项说地不够清楚,项目中想用自己的Svg图片作为地图的地图如何配置怎么做?这是我遇见的问题以及解决方案如下;


$.get(ROOT_PATH + '/data/asset/geo/flight-seats.svg', function (svg) { echarts.registerMap('flight-seats', { svg: svg });
这是echart给的默认图片以及注册用的代码,稍微解读一下就是他获取了一张SVG,然后将这张SVG注册了,名字叫 flight-seats。


解决方案:

1. 首先我们也要自己去注册一张地图。
在这里我的做法是这样的,首先把SVG图片的代码拿过来用``,把SVG的代码包裹起来并定义成一个变量。如下图

然后在这里进行注册,前面的名字要和下面的配置项对应

2. 将SVG代码内需要配置的点(设备或者是你需要改状态的地方)把它的name属性修改。
这里的g是我的点分组的代码,我把他这里的点的name属性改为PO(注意:这里的name必须是唯一值),这样它就有唯一对应的名字了,并且当他拥有name这个属性的时候他就在echart内变为可点击的事件了。

3. 配置Options,配置地图的选项可参考这篇文章 。

本文为CSDN博主「拿我格子衫来」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/github_35631540/article/details/116300038

4. 修改配置里面的regions属性 。
echart示例里面给了一个makeTakenRegions 函数,其实它的本质就是将每个点对应的名字单独地配置了样式属性。代码如下

 function makeTakenRegions(takenSeatNames, bName) {  //传入配置项regions的函数,takenSeatNames,bNanme都是包含着上述点名字的数组,例如takenSeatNames=[PO,AO]var regions = [];for (var i = 0; i < takenSeatNames.length; i++) {regions.push({        //最后返回regions这个数组,传入每个名字的配置项,每个名字都是一个对象name: takenSeatNames[i],   //传入的名字silent: true,itemStyle: {color: "#bf0e08",     //初始颜色},emphasis: {itemStyle: { //悬浮的样式borderColor: "#aaa",borderWidth: 1,color: "#bf0e08",},},select: {    //选中的样式itemStyle: {color: "#bf0e08",},},});}for (var i = 0; i < bName.length; i++) {    //可以有不同状态,takenSeatNames我用红色,这一类我用白色regions.push({name: preAlarmName[i],silent: true,itemStyle: {color: "#FFDB44",},emphasis: {itemStyle: {borderColor: "#aaa",borderWidth: 1,color: "#FFDB44",},},select: {itemStyle: {color: "#FFDB44",},},});}return regions;}

只要takeSeatNames,和bName里面有值,就可以改变点样式的状态。效果如下:

所以我们可以通过添加一个定时器,以轮询的方式向后端请求各类设备或者是商品的状态,(这里不知道能不能用websocket,大家也可以尝试一下,就不用通过轮询的方式来操作了)。

5. 除了动态地更改商品的状态外,我们还可以添加点击功能 。

echart提供了方法myChart.on("geoselectchanged", function (params) {})
其实就是每个点的点击事件,params是你当前选中的所有点,这个可能是一个也可以是多个,看你Option内写的选择模式是Single,还是multiple。所以当我们从params中拿到这个名字的时候就可以对它进行操作啦,我们可以把他当做参数传给后端,获取这个商品更详细的实时信息了。

Echarts类似航班选座如何做一个实时监测设备状态的案例相关推荐

  1. 如何在完全不懂服务器开发的情况下做一个实时联网对战的微信小游戏

    微信小游戏即将开放?有我们在,你还赶得上! 根据微信官方对外公开的消息,微信小游戏的脚步越来越接近了.它的开发者资格门槛和使用者门槛都很低,以后必将引爆一波"全民开发小游戏"浪潮. ...

  2. 分享三个例程:使用ESP32做一个实时语音对讲机,MQTT协议实现公网对讲,ESP32-CAM 上传图像数据到网络。并附上例程链接。

    分享三个例程:使用ESP32做一个实时语音对讲机,MQTT协议实现公网对讲,ESP32-CAM 上传图像数据到网络.并附上例程链接.可以比对着看来学习NOW,MQTT使用方法.想办法把图像和语音代码融 ...

  3. 用树莓派做一个实时垃圾分类器|超实用!!

    此开源项目由树莓派爱好者基地人工智能部门谢远伦.任剑杰.沈超,共同协作完成.在此感谢各位成员的付出与努力.正是有各位的付出,树莓派生态才能越来越丰富! 代码仓库 1.码云Gitee:https://g ...

  4. html 实时预览在线,用HTML+CSS做一个实时预览的markdown编辑器

    markdown编辑器 *{margin:0;padding:0;outline:none;border-radius:0; } html,body{width:100%;height:100%;fo ...

  5. python利用有道翻译做一个实时翻译软件

    效果图如下: 相关代码如下: import urllib.request import urllib.parse import json while True:url = "http://f ...

  6. Java----使用二维数组完成一个电影院选座系统

    用Java的二维数组来完成模拟一个电影院选座系统 模拟座位 这里先定义一个二维数组,用来模拟电影院的座位 public class ChooseSeat{public static void main ...

  7. 在线客服QQ是怎么实现的?简单的做一个!

    我们都见过很多的网站里面都是在线客服QQ的,直接点击QQ联系以后就可以直接聊天了,那么这个是怎么实现的呢?其实很简单的,只是我们没有认真的读过腾讯的协议,腾讯是提供了接口的,今天我们就简单的做一个! ...

  8. 在线选座位 html5,在线选座须知

    目前在线选座功能适用于厦航所有航线,其中付费座位仅适用于国际(地区)航线.在线选座需遵循以下原则: 1. 旅客请于航班起飞72小时之前进行在线选座. 2. 厦航部分航线因航班性质等原因限制在线选座功能 ...

  9. HTML+CSS+JavaScript实现仿猫眼电影购票选座

    一.功能实现 (1)在页面左侧区域,单击"可选座位",将座位设置为"已选座位",一次最多选5 个座位.右侧座位号汇总区域显示已选中的座位号,并显示电影票总价. ...

最新文章

  1. Windows Phone 7、XNA的旋转的背景
  2. 你见过最垃圾的代码长什么样?(来长长见识)
  3. Citrix Port(常用端口)
  4. 全能HOOK框架 JNI NATIVE JAVA ART DALVIK
  5. 如何制作流畅有力的游戏动画+Skullgirls案例分析
  6. Python--day47--mysql索引注意事项
  7. 无边框处理_PPT别再直接插图片,简单处理一下,瞬间提升你的PPT颜值
  8. sigsuspend函数(mysleep函数的改进)
  9. Java 默认/缺省 内存大小,如果没有 -Xms -Xmx
  10. 因“突发肾结石” 孙宇晨宣布取消与巴菲特的午餐会面
  11. 中班机器人教室设计方案_中班美术教案机器人
  12. NS2学习---可视化Tcl生成工具NSG2
  13. mac执行java死卡_MacOS应用程序有时卡死,怎么办?2种方法轻松搞定
  14. FBI:攻击者利用Mega.nz勒索攻击
  15. java版溺尸掉三叉戟吗_我的世界1.13通用水鬼塔经验农场(刷三叉戟农场)【内有存档】...
  16. nexus2.5版本升级到nexus2.14(同时升级到nexus3.24版本)版本
  17. ORB+GMS、FREAK+GMS、BRISK+GMS、AKAZE+GMS特征点结合使用方法
  18. Red Gate - SQL Source Control实现对SQL SERVER 的源代码控制
  19. 4399游戏测试实习生面试
  20. java小小工具 对象信息管理

热门文章

  1. 第六章 大数据,6.1 双11数据大屏背后的实时计算处理(作者:藏六 黄晓锋 同杰)...
  2. Laravel + Dcat admin 开发一个健壮的 erp 项目
  3. Ecplise上启动tomcat测试Servlet练习和问题总结
  4. matlab 索引图像
  5. 解决:谷歌浏览器任务栏图标变白
  6. Vue 简单的记录div滚动条的位置,并返回顶部
  7. Mac上运行Office就是这么简单
  8. H5返回页面销毁历史记录
  9. 有一个无效 SelectedValue,因为它不在项目列表中
  10. T1049晶晶赴约会 (信息学一本通C++)