Echarts实现省级到市级地图下钻

在echarts社区里copy项目时,有符合需求的地图但是没有地图下钻,没办法看了看有地图下钻的项目想了一个比较简单的思路。
(这里不再赘述如何创建基本地图实例)
1.首先把对应城市的下级地区geoJson下载到本地。
这里给大家一个下载连接↓
https://www.makeapie.com/editor.html?c=xmCAi_XNuJ

这个思路主要是对查询的geoJson文件名进行改变,并不会影响地图下钻的动画效果,还是很流畅的。
uploadDataURL是地图查询用到的json地址,本思路就是改变uploadedDataURL的值。

    var uploadedDataURL = "json/nmg.geoJson"

2.在myCharts.on(myCharts也可能是echarts,取决于你到导入echarts时声明的变量名)上绑定click点击事件,params为获取到的城市数据,params.name则是params数据中的城市名,可以console.log打印一下params详细了解获取到的数据。这里用语法糖代替了switch或if else。

    myChart.on('click', function (params) {
        let map = {
            '呼和浩特市':'json/hohot.geoJson',
            '包头市':'json/baotou.geoJson',
            '巴彦淖尔市':'json/bayannaoer.geoJson',
            '赤峰市':'json/chifeng.geoJson',
            '鄂尔多斯市':'json/eerduosi.geoJson',
            '呼伦贝尔市':'json/hulunbeier.geoJson',
            '通辽市':'json/tongliao.geoJson',
            '乌海市':'json/wuhai.geoJson',
            '乌兰察布市':'json/wulanchabu.geoJson',
            '锡林郭勒盟':'json/xilinguole.geoJson',
            '兴安盟':'json/xinganmeng.geoJson',
            '阿拉善盟':'json/alashan.geoJson',
        }
        uploadedDataURL = map[params.name]
        getResult();
    });

最后getResult()-(你的渲染方法)重新渲染页面。
*ps:如果有每次点击方法运行次数都会增多的情况,将myCharts.on方法拿出来(比如不要放在getResult()里面)进行解耦。