一、echart中国地图高亮
在echart中国地图中,我们可以非常轻松地实现对某个区域的高亮展示,只需利用echarts提供的API,即可设定相关的高亮属性:
// 设定一个区域的高亮展示 myChart.setOption({ series: [{ type: 'map', map: 'china', emphasis: { itemStyle: { areaColor: '#F3B329' } }, label: { show: true }, data: [] }] });
上述代码中,我们将中国地图设置为主视图,然后用emphasis:itemStyle对象设定了该视图的高亮颜色,其它属性可以查阅echarts的文档,以便进行合理的配置和实现。
二、echart中国地图背景渐变
echart为用户提供了丰富的可视化方案,其中一个实用的特性便是支持为地图背景配置渐变的效果。我们只需稍加修改主题色值即可实现:
// 背景色渐变处理 myChart.setOption({ backgroundColor: { type: 'linear', x: 0, y: 0, x2: 0, y2: 1, colorStops: [{ offset: 0, color: '#113681' // 0% 处的颜色 }, { offset: 1, color: '#1979D2' // 100% 处的颜色 }], globalCoord: false // 缺省为 false }, series: [{ ... }] });
通过为属性backgroundColor设定一个linear对象,即可实现对地图背景色的线性渐变处理,具有极强的视觉冲击力。
三、echart中国地图图例
同时,echart也支持可自定义的地图图例,如按照百分比颜色展示不同数据的区域:
// 设置echart图例 myChart.setOption({ visualMap: { min: 0, max: 100, left: 'left', top: 'bottom', text: ['高', '低'], // 文本,默认为数值文本 calculable: true, inRange: { color: ['#B5C2CF', '#022B69'] } }, series: [{ ... }] });
如上方代码所进行的操作,在echarts中常用属性visualMap中,我们可以设置visualMap.inRange.color的颜色,以及相关的最大和最小值等内容,快速对地图展示效果进行配置和调整。
四、echart中国地图颠倒
在某些应用场景中,我们需要对中国地图进行颠倒后的展示,此时也可以使用echart的相关API来轻松实现:
// 中国地图颠倒 myChart.setOption({ geo: { map: 'china', top: '10%', bottom: '15%', left: '30%', right: '30%', roam: true, scaleLimit: { min: 1, max: 2 }, inverse: true, label: { normal: { show: true, textStyle: { color: '#ddd' } } }, itemStyle: { normal: { borderColor: 'rgba(147, 235, 248, 1)', borderWidth: 1, areaColor: { type: 'radial', x: 0.5, y: 0.5, r: 0.8, colorStops: [{ offset: 0, color: 'rgba(147, 235, 248, 0)' // 0% 处的颜色 }, { offset: 1, color: 'rgba(147, 235, 248, .2)' // 100% 处的颜色 }], globalCoord: false // 缺省为 false }, shadowColor: 'rgba(128, 217, 248, 1)', // shadowColor: 'rgba(255, 255, 255, 1)', shadowOffsetX: -2, shadowOffsetY: 2, shadowBlur: 10 }, emphasis: { areaColor: '#389BB7', borderWidth: 0 } } }, series: [{ ... }] });
以上代码中,我们将geo对象相关的参数进行设置实现中国地图的颠倒显示,如将top、bottom、left和right等坐标系参数进行合理配置,从而达到特定效果。
五、echart中国地图icon
echart也支持在地图中插入自定义的icon图标,以方便用户对地图数据的展示和处理:
// 中国地图自定义icon myChart.setOption({ geo: { map: 'china', label: { normal: { show: true, textStyle: { color: 'rgba(0,0,0,0.4)' } } }, roam: true, itemStyle: { normal: { borderWidth: 0.5, borderColor: 'rgba(0, 0, 0, 0.2)' } }, // 插入自定义icon regions: [{ name: '南海诸岛', value: 0, itemStyle: { normal: { opacity: 0, label: { show: false } } }, // 自定义icon geoCoord: { '南海诸岛': [112.921019, 8.325475] }, type: 'effectScatter', effectType: 'ripple', symbolSize: 3 }] }, series: [{ ... }] });
在以上示例代码中,我们在regions属性中定义需要插入icon的区域和对应的一些样式配置,如itemStyle,效果非常漂亮而且方便。
六、echart中国地图默认高亮
echart实现中国地图的默认高亮,使用上比较方便,只需在series中使用itemStyle中的emphasis对象,并设置高亮颜色即可,效果和前面提到的操作差别不大:
// 默认高亮一些区域 myChart.setOption({ series: [{ type: 'map', map: 'china', data: [], itemStyle: { normal: { areaColor: '#F3B329', borderColor: '#333', borderWidth: 0.5 }, emphasis: { areaColor: '#F3B329' } } }] });
七、echart中国地图钓鱼岛
echarts中也提供钓鱼岛的相关地区信息,通过在echart中修改视图项的相关调用参数即可实现钓鱼岛地区的高亮、颜色等配置:
// China's island color var chinaIslandColor = '#C5CCD0'; option.series.push({ name: '', type: 'map', mapType: 'china', selectedMode: 'single', data: [], itemStyle: { normal: { label: { show: false } }, emphasis: { label: { show: false } } }, geoCoord: { '钓鱼岛': [123.5, 25.6] }, markPoint: { symbol: "image://img/diaoyu.png", symbolSize: [24, 33], itemStyle: { normal: { label: { show: false }, color: chinaIslandColor, borderColor: '#fff', borderWidth: 1.5 } }, data: [ { name: '钓鱼岛', value: 0, geoCoord: [123.5, 25.6] } ] } }); myChart.setOption(option, true);
如上述代码所完成的操作,即为钓鱼岛地区的标注和强调的处理,方便用户进行地图结构性的认知。
八、echart中国地图的某省边框加粗
有时,我们需要对中国地图中某些更为重要的省份边框进行加粗和突出,以便更容易观察到细节和特质,此时我们可以使用echart提供的边框绘制功能完成相关的操作,其实现代码如下:
// 中国地图省份边框加粗 myChart.setOption({ series: [{ type: 'map', map: 'china', itemStyle: { normal: { label: { show: true }, borderWidth: 1, borderColor: '#009fe8' }, emphasis: { label: { show: true } } }, data: [] }, { type: 'map', map: 'china', geoIndex: 0, aspectScale: 0.75, //长宽比 showLegendSymbol: false, // 存在legend时显示 label: { normal: { show: false }, emphasis: { show: false, textStyle: { color: '#fff' } } }, roam: true, itemStyle: { normal: { areaColor: '#031525', borderColor: '#3B5077' }, emphasis: { areaColor: '#2B91B7' } }, animation: false, data: [] }] });
以上代码中,我们仅需将itemStyle.normal中的borderWidth对应的值调整为让相关区域边框加粗即可实现该特性的实现。
九、echarts中国地图的使用
最后,我们整理一份完整的echarts中国地图的示例代码如下,方便大家使用和了解echarts相关的操作:
中国地图 <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script> <script type="text/javascript"> var myChart = echarts.init(document.getElementById('main')); myChart.setOption({ geo: { map: 'china', roam: true, label: { normal: { show: false }, emphasis: { show: true, textStyle: { color: '#fff', fontSize: '18', fontWeight: 'bold' } } }, itemStyle: { normal: { areaColor: '#323c48', borderColor: '#404a59' }, emphasis: { areaColor: '#2a333d' } } }, series: [ { type: 'map', map: 'china', roam: false, itemStyle: { normal: { borderWidth: .5, //区域边框宽度 borderColor: '#009fe8', //区域边框颜色 areaColor: "#ffefd5", //区域颜色 }, emphasis: { borderWidth: .5, borderColor: '#4b0082', areaColor: "#fff", } }, label: { normal: { show: true, fontSize: "11", color: "#000" }, emphasis: { show: true, fontSize: "11", color: "#000" } }, data: [ ] } ] }); </script>