首先来说一下地图数据的来源问题,如果是中国地图,则无需处理,JS自带,如果需要其他省市区县的话,需要自己把地图JSON数据拿下来。
这里有两个方式:
1,自由选取
http://geojson.io/#map=11/39.9063/116.3095
2,通过阿里获取国内地图
http://datav.aliyun.com/tools/atlas/#&lat=30.332329214580188&lng=106.72278672066881&zoom=3.5
其官方文档目前是:https://echarts.apache.org/zh/option.html#title
其官方示例:https://echarts.apache.org/examples/zh/index.html
老版本示例:https://echarts.apache.org/v4/examples/zh/index.html
我们就那宿迁来做,效果如下:
代码如下:
<!DOCTYPE html> <html style="height: 100%"> <head> <meta charset="utf-8"> </head> <body style="height: 100%; margin: 0"> <div id="container" style="height: 100%"></div> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@4/dist/echarts.min.js"></script> <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> <script type="text/javascript"> var dom = document.getElementById("container"); var myChart = echarts.init(dom); var option; myChart.showLoading(); $.get('https://geo.datav.aliyun.com/areas_v2/bound/321300_full.json', function (geoJson) { myChart.hideLoading(); echarts.registerMap('SQ', geoJson); myChart.setOption(option = { title: { text: '宿迁各区总人口图', subtext: '人口密度数据来自模拟', sublink: 'http://www.javacui.com/', left:'center' }, // 触发类型,数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用 tooltip: { trigger: 'item', formatter:"{b} 总人口:{c}(万)" // {a}(系列名称),{b}(区域名称),{c}(合并数值), {d}(无) }, toolbox: { show: true, orient: 'vertical', left: 'right', top: 'center', saveAsImage: { show : true, title : '宿迁各区总人口图', type : 'jpeg' }, }, // 是视觉映射组件,用于进行『视觉编码』,也就是将数据映射到视觉元素(视觉通道) visualMap: { min: 800, max: 50000, text: ['高', '低'], realtime: false, calculable: true, inRange: { color: ['lightskyblue', 'yellow', 'orangered'] } }, legend: { orient: 'vertical', x:'left', data:['男性','女性','其他'] }, series: [ { name: '男性', type: 'map', mapType: 'SQ', // 自定义扩展图表类型 selectedMode: 'single',// 选中模式,表示是否支持多个选中,默认关闭,支持布尔值和字符串,字符串取值可选'single'表示单选,或者'multiple'表示多选。 roam:false, // 是否开启鼠标缩放和平移漫游。默认不开启。如果只想要开启缩放或者平移,可以设置成 'scale' 或者 'move'。设置成 true 为都开启 itemStyle:{ normal:{label:{show:true}}, emphasis:{label:{show:true}} }, data: [ {name: '宿城区', value: 20057}, {name: '宿豫区', value: 15477}, {name: '沭阳县', value: 31686}, {name: '泗阳县', value: 6992}, {name: '泗洪县', value: 44045} ] }, { name: '女性', type: 'map', mapType: 'SQ', selectedMode: 'single', roam:false, itemStyle:{ normal:{label:{show:true}}, emphasis:{label:{show:true}} }, data: [ {name: '宿城区', value: 1057}, {name: '宿豫区', value: 77}, {name: '沭阳县', value: 386}, {name: '泗阳县', value: 6992}, {name: '泗洪县', value: 245} ] }, { name: '其他', type: 'map', mapType: 'SQ', selectedMode: 'single', roam:false, itemStyle:{ normal:{label:{show:true}}, emphasis:{label:{show:true}} }, data: [ {name: '宿城区', value: 757}, {name: '宿豫区', value: 477}, {name: '沭阳县', value: 86}, {name: '泗阳县', value: 892}, {name: '泗洪县', value: 6045} ] } ] }); }); // 点击事件 myChart.on('click', function (params) { alert(params.name + "->" + params.value); }); if (option && typeof option === 'object') { myChart.setOption(option); } </script> </body> </html>
ECharts 正在 Apache 开源基金会孵化中
Java小强
未曾清贫难成人,不经打击老天真。
自古英雄出炼狱,从来富贵入凡尘。
发表评论: