做市区地图,最头疼的就是json文件,echarts官方只有到省份,没有到市区、县
这次市区地区的json文件是通过 https://hxkj.vip/demo/echartsMap/ 得到的,做个记录方便以后用,也分享给大家~
注:引用json文件,与引用js 文件调用方法不同
initChart(id,data){ let obj = echarts.init(document.getElementById(id)); const geoCoordMap = { '市北区': [120.355026, 36.14], '市南区': [120.395966, 36.070892], '四方区': [120.35,35.9 ], '西海岸新区': [120.1, 36], '崂山区': [120.7, 36.20], '李沧区': [120.36, 36.2], '城阳区': [120.41564941406251, 36.268635800737876], '胶州市': [120.006202, 36.285878], '莱西市': [120.526226, 36.86509], '即墨区': [120.447352, 36.390847], '平度市': [119.959012, 36.788828], '崂山区1': [120.65, 36.23], '市南区1': [120.39, 36.08], '莱西市1': [120.50, 36.90], '城阳区1': [120.30, 36.26], '李沧区1': [120.40, 36.18], '黄岛区1': [120, 35.88], '即墨区1': [120.44, 36.44], '市北区1': [120.34, 36.09], '胶州市1': [120.0, 36.34], }
//因每个地区有多各小气泡,所以需设多个值,此处得名称应在geoCoordMap添加相应得经纬度值 const pinData = [ {region:'崂山区1'}, {region:'市南区1'}, {region:'莱西市1'}, {region:'城阳区1'}, {region:'李沧区1'}, {region:'即墨区1'}, {region:'市北区1'}, {region:'胶州市1'}, ] const convertData = function(data) { var res = []; for (var i = 0; i < data.length; i++) { var geoCoord = geoCoordMap[data[i].region]; if (geoCoord) { res.push({ value: geoCoord.concat(data[i].value), name: data[i].region, managercount:data[i].managercount, fundcount:data[i].fundcount, }); } } return res; }; let option = ({ // 进行相关配置 visualMap: { show:false, text: ['高', '低'], showLabel: true, seriesIndex: [0], min: 0, max: 100, inRange: { color:[ '#2ab0fc','#0195f1', '#047ad7',] }, }, geo: { map: 'qingdao', // roam: true, //是否缩放 zoom: 1.15, //放大倍数 label: { emphasis: { show: false } }, itemStyle: { normal: { areaColor: '#83caf5', borderColor: '#fff', }, emphasis: { areaColor: '#aed6f2', } }, }, series: [ { type: 'map', map: 'qingdao', geoIndex: 0, data:data, }, { name:'青岛', type: 'scatter', coordinateSystem: 'geo', geoIndex: 0, symbol:'pin', symbolSize:1, label:{ //标签样式 normal:{ show:true, formatter:function(params){ //标签内容 return params.name+':'+params.data.managercount+','+params.data.fundcount; }, lineHeight: 20, backgroundColor:'rgba(255,255,255,.9)', borderColor:'#84d1fd', borderWidth:'1', padding:[5,15,4], color:'#000000', fontSize: 14, fontWeight:'normal', }, }, data:convertData(data), zlevel: 2 //提高层级,否则气泡会在label 上面 }, { name:'青岛', type: 'scatter', coordinateSystem: 'geo', geoIndex: 0, symbol:'pin', //地图上得小气泡 symbolSize:20, data:convertData(pinData), itemStyle: { normal: { color: 'rgba(232,153,50,1)', //标志颜色 } }, zlevel: 1 } ] }) echarts.registerMap('qingdao',qingdao); obj.setOption(option); },
效果如下: