【数据可视化】项目分布地图设计之修改地图样式

上文效果

上文【数据可视化】项目分布地图设计之显示省份地图(点击可查看原文) 中,我们实现了一个空白的陕西省地图,在接下来的步骤中,我们将调整地图的样式,让其符合可视化整体风格。
在这里插入图片描述

本节目标

  1. 增加鼠标悬停事件,能够显示项目数量(toolTip)

实现步骤

基于上文代码(点击查看),逐个实现功能

1. 增加鼠标悬停事件,高亮显示,并且能够显示项目数量

  1. 创建一个含有陕西地市划分的数组。本阶段其实有没有经纬度都可以。只是为了方便后续,我们把经纬度加上了。
    var shanxiCity = [{"cp":[108.948024,34.263161],"name":"西安市"},
                        {"cp":[108.979608,34.916582],"name":"铜川市"},
                        {"cp":[107.14487,34.369315],"name":"宝鸡市"},
                        {"cp":[108.705117,34.333439],"name":"咸阳市"},
                        {"cp":[109.502882,34.499381],"name":"渭南市"},
                        {"cp":[109.49081,36.596537],"name":"延安市"},
                        {"cp":[107.028621,33.077668],"name":"汉中市"},
                        {"cp":[109.741193,38.290162],"name":"榆林市"},
                        {"cp":[109.029273,32.6903],"name":"安康市"},
                        {"cp":[109.939776,33.868319],"name":"商洛市"}]
  1. 遍历数组,创建一个地图上项目分布的数据
        var data = []

        shanxiCity.forEach(function(v) {
            // 地区名称
            var name = v.name;
            data.push({
                name: name,
                value: Math.round(Math.random() * 10 + 10)
            })
        });
  1. 将data添加到series中的map系列中,并且声明toolTip的显示方式
  2. 全部代码如下所示
function echart_map() {
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('chart_map'));

        var mapName = '陕西'
        
        var data = []

        shanxiCity.forEach(function(v) {
            // 地区名称
            var name = v.name;
            data.push({
                name: name,
                value: Math.round(Math.random() * 10 + 10)
            })
        });
        
        option = {
            tooltip: {
                trigger: 'item',
                formatter: function(params) {
                    var toolTiphtml = ''
                    toolTiphtml += params.name+':<br>'
                    toolTiphtml+='项目数:'+params.value+"<br>"
                    return toolTiphtml;
                }
            },
            geo: {
                show: true,
                map: mapName,
                label: {
                    normal: {
                        show: true
                    },
                    emphasis: {
                        show: true,
                    }
                },
                roam: false,
                itemStyle: {
                    normal: {
                        areaColor: '#fff',
                        borderColor: '#3B5077',
                    },
                    emphasis: {
                        areaColor: '#2B91B7',
                    }
                }
            },
            series: [
                {
                    type: 'map',
                    map: mapName,
                    geoIndex: 0,
                    aspectScale: 0.75, //长宽比
                    showLegendSymbol: false, // 存在legend时显示
                    label: {
                        normal: {
                            show: true
                        },
                        emphasis: {
                            show: false,
                            textStyle: {
                                color: '#fff'
                            }
                        }
                    },
                    roam: true,
                    itemStyle: {
                        normal: {
                            areaColor: '#031525',
                            borderColor: '#0227ad',
                        },
                        emphasis: {
                            areaColor: '#2B91B7'
                        }
                    },
                    animation: false,
                    data: data
                }
            ]
        };
        myChart.setOption(option);
    }

实现效果

在这里插入图片描述
下一篇中,我们将实现根据项目,用一个符号通过大小变换,显示项目数量的多少。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值