在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()里面)进行解耦。