您的位置:

echart中国地图详解

一、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>