Echarts 实现地图散点,大数据可视化,无需百度地图

最近有个需求是对停车场车辆进行归属地统计,将各个归属地的车辆数显示在地图中,所有研究了一下echarts,下图是一个比较经典的柱状图报表,具体实现就不列出来了,大家可以访问echarts官网,里面有许多实例,小伙伴们可以根据自己的需求去官网copy就ok啦~,下面是echarts官网链接

https://echarts.apache.org/zh/index.html

这里,想给大家分享的是如何使用echarts实现地图散点,数据可视化,(关键是自己从官网的实例中没怎么琢磨明白,自己研究了会,发现有些需要注意的地方)

 

首先是引用echarts.js,大家可以去官网下载,也可以关注“墨水直达”公众号,回复“echarts插件”下载即可,里面中国地图完整的json数据

大家如果有什么想要的插件,也可以在公众号留言呀,收到留言后,我会尽最大努力帮大家找到的

首先是html

<div id="MapChart">  </div>

css:这里需要注意,需要给div标签设置高度哦,不然显示不出来的

 #MapChart {
        width: 100%;
        height: 400px;
    }

js:

<script>
var MapChart;
 $(document).ready(function () {
     //这里需要放中国地区的坐标,我这里放一部分,不然太长了,大家看起来费劲
     //我会将完整的中国地图坐标放在文章尾部
       var geoCoordMap = { 
            湖北: [114.17, 30.35],
            湖南: [112.59, 28.12],
            江苏: [118.46, 32.03],
            江西: [115.55, 28.40],
            辽宁: [123.25, 41.48],
            内蒙古: [111.41, 40.48],
            宁夏: [106.16, 38.27],
            青海: [101.48, 36.38],
            山东: [117.00, 36.40],
            山西: [112.33, 37.54],
            陕西: [108.57, 34.17],
            四川: [104.04, 30.40],
            西藏: [91.08, 29.39],
            新疆: [87.36, 43.45],
            云南: [102.42, 25.04],
            浙江: [120.10, 30.16],
        };
        //这里就是需要在地图中显示的数据
    var locValue = [
            { name: "宁夏", value: "100" },
            { name: "青海", value: "50" },
            { name: "山东", value: "20" },
            { name: "山西", value: "90" },
            { name: "陕西", value: "170" },
            { name: "四川", value: "190" },
            { name: "西藏", value: "160" },
            { name: "新疆", value: "140" }
        ];
  var convertData = function (geoCoordMap, data) {
            var res = [];
            for (var i = 0; i < data.length; i++) {
                var geoCoord = geoCoordMap[data[i].name];
                if (geoCoord) {
                    res.push({
                        name: data[i].name,
                        value: geoCoord.concat(data[i].value)
                    });
                }
            }
            return res;
      };
      //大家注意这个地方,引用的是中国地图的json文件,大家可以在公众号回复“echarts插件”
  $.getJSON('/Content/scripts/echarts/china.json', function (data) {
            echarts.registerMap('shandong', data);
            var chart = echarts.init(document.getElementById('MapChart'));
            var option_map = {
                backgroundColor: '#404a59',
                title: {
                
                    x: 'center',
                    textStyle: {
                        color: '#fff'
                    }
                },
                tooltip: {
                    trigger: 'item',
                    formatter: function (params) {
                        return params.name + ' : ' + params.value[2];
                    },
                    extraCssText: "height:20px;"
                },
                legend: {
                    orient: 'vertical',
                    y: 'bottom',
                    x: 'right',
                    data: ['归属地占比数'],
                    textStyle: {
                        color: '#fff'
                    }
                },
                visualMap: {
                    min: 0,
                    max: 200,
                    calculable: true,
                    inRange: {
                        color: ['#50a3ba', '#eac736', '#d94e5d']
                    },
                    textStyle: {
                        color: '#fff'
                    }
                },
                geo: {
                    map: 'shandong',
                    roam: true,
                    aspectScale: 1,
                    label: {
                        emphasis: {
                            show: true,
                            color: "#fff"

                        }
                    },
                    itemStyle: {
                        normal: {
                            areaColor: '#323c48',
                            borderColor: '#111'
                        },
                        emphasis: {
                            areaColor: '#2a333d'
                        }
                    }
                },
                series: [
                    {
                        name: '归属地占比数',
                        type: 'effectScatter',
                        coordinateSystem: 'geo',
                        data: convertData(geoCoordMap, locValue).slice(0, 4),
                        symbolSize: 12,
                        label: {
                            normal: {
                                show: false
                            },
                            emphasis: {
                                show: false
                            }
                        },
                        itemStyle: {
                            emphasis: {
                                borderColor: '#fff',
                                borderWidth: 1
                            }
                        }
                    },
                    {
                        name: '归属地占比数',
                        type: 'scatter',
                        coordinateSystem: 'geo',
                        data: convertData(geoCoordMap, locValue).slice(4, 8),
                        symbolSize: 12,
                        label: {
                            normal: {
                                show: false
                            },
                            emphasis: {
                                show: false
                            }
                        },
                        itemStyle: {
                            emphasis: {
                                borderColor: '#fff',
                                borderWidth: 1
                            }
                        }
                    },
                    { //没有visualMap的情况,同颜色大小标识不同的等级
                        name: '归属地占比数',
                        type: 'scatter',
                        coordinateSystem: 'geo',
                        data: convertData(geoCoordMap, locValue).slice(8, 12),
                        symbolSize: function (val) {
                            return val[2] / 10;
                        },
                        label: {
                            normal: {
                                formatter: '{b}',
                                position: 'right',
                                show: false
                            },
                            emphasis: {
                                show: true
                            }
                        },
                        itemStyle: {
                            normal: {
                                color: '#ddb926'
                            }
                        }
                    },
                    {
                        name: '归属地占比数',
                        type: 'effectScatter',
                        coordinateSystem: 'geo',
                        data: convertData(geoCoordMap, locValue).slice(12, 18),
                        symbolSize: function (val) {
                            return val[2] / 10;
                        },
                        showEffectOn: 'emphasis',
                        rippleEffect: {
                            brushType: 'stroke'
                        },
                        hoverAnimation: true,
                        label: {
                            normal: {
                                formatter: '{b}',
                                position: 'right',
                                show: true
                            }
                        },
                        itemStyle: {
                            normal: {
                                color: '#f4e925',
                                shadowBlur: 10,
                                shadowColor: '#333'
                            }
                        },
                        zlevel: 1
                    },
                ]
            };
            chart.setOption(option_map);
        });
     
 });
</script>

如果大家的需求是针对于省份城市,而不是全国地图,可以在“墨水直达”公众号里回复“echarts地图”,就可以想下载哪个省份,就下载哪个省份了

好了,关于echarts地图散点分布就分享到这了,有兴趣的可以关注“墨水直达”,里面有许多免费的编程资料可以领取哦~

猜你喜欢

转载自blog.csdn.net/huxinyu0208/article/details/108663124