vue项目引用echarts 中国地图、省、市下钻实现
功能描述:中国地图下钻-省-市
逻辑原理: 初始化中国地图,利用地图点击事件设置map配置到省或者市
难点:源码没有市级别的json,增加了下钻第三级的难度
解决方式:下载json资源,引入并重新注册地图
版本:4.2.0-rc.2
备注:尚未了解新版本是否含市级别的json文件
l前戏了解:
源码地图了解 ===>路径:echarts->map-> js/json 文件夹
中国地图:import \'echarts/map/js/china\'
广东地图: import \'echarts/map/js/province/guangdong\'
(为什么是这个路径,你尝试打开源码就明白了 )
||正题切入:
开始显示地图 设置series的map:‘china’,具体实现地图的源码可以参考我的另一篇文章https://www.cnblogs.com/yflbk-2016/p/13596124.html
点击到省级别实现原理很简单的,series的map:\'广东\' 即可,注意不是英文\'guangdong\',原因可以看到源码js文件。注册写着中文
效果图
代码切换实现
// name 全局变量,保存当前地图的名称var name = \'china\'
// 点击事件
myChart.on(\'click\', (params) => {
name = params.name
this.render() // 重新渲染地图的方法
})
// option设置
series:的 map: name
View Code
|||难点:点击到市级别,源码不支持了
源码中也发现除了到省就没有市等更细级别的json文件了,那只好网上资源下载,参考链接http://datav.aliyun.com/tools/atlas/#&lat=22.890161256069373&lng=113.42393600000004&zoom=7
1.搜索功能
2.含有子区域的json文件路径,可以直接打开查看内容复制粘贴,那就不需要下载;说明:第一个路径没有full结尾的就是不含子区域的路径,不含子区域指就是中间没有界限,看不到具体内容,就一个壳(一般没有人会用个轮廓吧)
3.直接把json文件下载
下载好的文件放到静态资源里(湛江市为例)
在上一段代码on事件中间加代码,利用axios请求静态资源获取到json
// 代码内容
if (params.name === \'湛江市\') {axios.get(\'./static/440800.json\').then(res => {
const getJson = res.data
echarts.registerMap(params.name, getJson)
this.resizeChart() // resize 图形功能方法
})}
点击下钻效果
总结:以上设置即可实现下钻效果,暂时无测试数据,功能细节也不算很全,比如添加返回等功能,后期有空补上~
======添加返回上一级功能
初始化:上面提到的字符串name变量改成数组变量 var nameArr = [\'china\'],默认含有中国地图,series的map或geo的map更改为map:nameArr[nameArr.length - 1]
下钻:每次点击添加 nameArr.push(params.name)
返回:nameArr.pop()
已测
ending....
以上是 vue项目引用echarts 中国地图、省、市下钻实现 的全部内容, 来源链接: utcz.com/z/376954.html