Echarts实现地图下钻+对应区域数据展示+右键返回上一级

Echarts实现地图下钻+对应区域数据展示+右键返回上一级Echarts 版本是 echarts4 研究了三天 Echarts 终于实现了基于 Echarts 实现地图下钻至县区 加对应区域的数据展示 先看效果图后续更新研究的过程 建议要想使用用 echarts 的同学先去看官方文档和示例 不要盲目的去搞 我前一天在弄数据添加到地图上展示 自己在瞎搞了一天 也没搞出过所以然来 后来去看了半天文档 对着示例研究 终于把数据展示弄清楚了 接下来就是

研究了三天Echarts,终于实现了基于Echarts 实现地图下钻至县区,加对应区域的数据展示。先看效果图

在这里插入图片描述

后续更新研究的过程,建议要想使用用echarts的同学先去看官方文档和示例,不要盲目的去搞。我前一天在弄数据添加到地图上展示,自己在瞎搞了一天,也没搞出过所以然来。后来去看了半天文档,对着示例研究,终于把数据展示弄清楚了。接下来就是绑定数据就可以了,开心。


2018/3/26 更新

  1. 修改样式,根据色阶数值地图块显示不同的颜色
  2. 按月份筛选数据,日期插件是原生的html5 input date
  3. 每个对应区域的下一级同样按筛选月份显示数据
  4. 实现右键返回
    1. 查找了 echarts 官方api文档,鼠标事件 myChart.on('contextmenu', ()=>{})
    2. 去掉浏览器默认右键菜单 + echarts右键事件
let canvas = document.getElementsByTagName("body") canvas.oncontextmenu = function(){ 
    return false;} myCharts.on('contextmenu,function(params){ 
     //鼠标右键事件,显示右键返回上一级 $('#context-menu').css({ 
     left: params.event.offsetX, top: params.event.offsetY }) }) 

在这里插入图片描述

  1. 右键返回需要用到栈来实现
    1. 点击地图进入下一级的时候,把当前渲染好的数据入栈
    2. 右键返回上一级,数据出栈,重新渲染 (不知道能不能实现想浏览器一样,单纯的返回上一个页面,而不需要重新渲染)

这里写图片描述


  1. 一开始的思路是想在原来的地图通通过 图例改变事件 的api 改变地图数据,来展示。
    结果,实现逻辑太复杂,自己把自己绕晕了

  2. 经前辈指导,通过按钮链接跳转,copy4份地图,数据改变就可以了,get

这里写图片描述
这个效果体验不好,不要了,再修改


2018/3/27更新

实现地区数据排行条状图

知识点

  • 数据排序
  • 数据渲染,关联
  • 当前数据入栈 与 出栈
  • 封装公共的部分代码
  • 更新修bug表

在这里插入图片描述


2018/4/17 更新


部分参考代码,右键点击地图事件,地图下钻

chart.on("click", function(params) { 
         //隐藏右键返回菜单 $("#contextMenu").hide(); let tmpObj = { 
        }; let d = []; if (params.name in provinces) { 
         //二级直辖市数据渲染 if (special.indexOf(params.name) >= 0) { 
         let postData2 = { 
         parentid: "provinceid", value: params.data.id }; Promise.all([ajaxRequest(getCityNumberUrl, searchtime, postData2)]).then( result => { 
         let [curMonthResult, lastMonthData] = result; let tmp = []; if (curMonthResult.errcode == 1) { 
         getAreaNumber( params.name, curMonthResult.msg[0].cityid, searchtime ); } }, error => { 
         console.log("请求市级数据失败", e); } ); } //如果点击的是34个省、市、自治区,绘制选中地区的二级地图 $.getJSON(provinceJson + provinces[params.name] + ".json", function( data ) { 
         echarts.registerMap(params.name, data); for (var i = 0; i < data.features.length; i++) { 
         d.push({ 
         name: data.features[i].properties.name }); } renderMap(params.name, d); if (params.data.id !== "undifiend") { 
         getCityNumber(params.name, params.data.id, searchtime, data); } }); } else { 
         //显示县级地图 $.getJSON(cityJson + cityMap[params.name] + ".json", function( data ) { 
         echarts.registerMap(params.name, data); let d = []; for (var i = 0; i < data.features.length; i++) { 
         d.push({ 
         name: data.features[i].properties.name }); } renderMap(params.name, d); if (params.data.cityid) { 
         let postData3 = { 
         parentid: "cityid", value: params.data.cityid }; Promise.all([ ajaxRequest(getAreaNumberUrl, searchtime, postData3) ]).then( result => { 
         let [curMonthResult, lastMonthData] = result; let tmp = []; if (curMonthResult.errcode == 1) { 
         // console.log('204', res.msg[0].cityid, res.msg[0].city) //这里传递的城市名有问题“北京市”,渲染地图的名字是“北京”,所以地图名要用原来的名字渲染 getAreaNumber(params.name, params.data.cityid, searchtime); } }, error => { 
         console.log("请求市级数据失败", e); } ); } }); } 

可加群交流 :

Echarts实现地图下钻+对应区域数据展示+右键返回上一级 Echarts实现地图下钻+对应区域数据展示+右键返回上一级
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203773.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午9:37
下一篇 2026年3月19日 下午9:37


相关推荐

  • vue引入echarts

    vue引入echarts一 cmd 命令 vuecreatedem 二 项目命令窗口 npminstallec 三 main js 全局引入形式 import asechartsfro echarts Vue prototype echarts echarts 四 index vue 页面使用 template divclass app divclass app template

    2026年3月20日
    2
  • 虚拟现实开发一些建议怎么写_虚拟现实开发引擎

    虚拟现实开发一些建议怎么写_虚拟现实开发引擎本文章由cartzhang编写,转载请注明出处。所有权利保留。文章链接:作者:cartzhang【本文为原作者对虚拟现实开发的一些建议和理解,写的非常不错。理解的也非常透彻,希望对各位在路上的VR开发者有积极作用。】下面是我对虚拟现实开发一下建议。我已经把他们分为Vive相关,常规VR和更宽泛意义上的建议。更多建议请关注我的Twitter。一、Vive相关1.让玩家按下按键

    2025年11月10日
    4
  • intellij idea 全局搜索_idea设置全局搜索

    intellij idea 全局搜索_idea设置全局搜索IntelliJIDEA使用教程(总目录篇)我们用Eclipse或者IntelliJIDEA编程,有时候需要将整个项目的某个字符串替换成其他的。全局搜索我会,我还给调成ctrl+g了呢,但是遇到要全局(整个项目)替换字符串。哎哟,我有点蒙了。这不换了编辑器吗。我用的是eclipse的keymap而且电脑又不是mac。那么问题来啦。怎么找快捷键呢。如下;额,顺便说下…

    2026年4月15日
    7
  • LM Studio本地大模型部署保姆级教程

    LM Studio本地大模型部署保姆级教程

    2026年3月17日
    2
  • 汇编指令详解

    汇编指令详解一 数据传送指令 1 传送指令 MOV move 格式 movdst src 具体用法 1 CPU 内部寄存器之间的数据传送 如 movah al 2 立即数送至通用寄存器 非段寄存器 或存储单元 如 moval 3mov bx 1234h 3 寄存器与存储器间的数据传送 如 movax varmovax bx 2 交换指令 XCHGxchgOPRD OPRD2 OPRD 可以是通用寄存器或存储单元 但

    2026年3月26日
    1
  • 1165. 单词环(spfa求负环)「建议收藏」

    1165. 单词环(spfa求负环)「建议收藏」我们有 n 个字符串,每个字符串都是由 a∼z 的小写英文字母组成的。如果字符串 A 的结尾两个字符刚好与字符串 B 的开头两个字符相匹配,那么我们称 A 与 B 能够相连(注意:A 能与 B 相连不代表 B 能与 A 相连)。我们希望从给定的字符串中找出一些,使得它们首尾相连形成一个环串(一个串首尾相连也算),我们想要使这个环串的平均长度最大。如下例:ababcbckjacacaahoynaab第一个串能与第二个串相连,第二个串能与第三个串相连,第三个串能与第一个串相连,我们按照此顺序相连,

    2022年8月9日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号