echarts在地图上绘制散点图(任意点)

2019-02-20 00:44:29来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

项目需求:在省份地图上绘制散点图,散点位置不一定是哪个城市或哪个区县,即任意点

通过查询官网文档,找到一个与需求类似的Demo:https://www.echartsjs.com/gallery/editor.html?c=scatter-map,更改代码,将中国地图替换为省份地图,省份地图的js代码可以从网上下载,官网现在不提供下载了。

index.html,一个盒子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>mapScatter Demo</title>
</head>
<body>
    <div id="echart" style="width: 1000px; height: 800px;"></div>

    <script src="./echarts.min.js"></script>
    <script src="./gansu.js"></script>
    <script src="./main.js"></script>
</body>
</html>

main.js

var dom = document.getElementById("container");
var myChart = echarts.init(dom);
option = null;
// 散点在地图上的坐标
var geoCoordMap = {
    "国家级基地1": [94.12, 39.66],
    "国家级基地2": [97.20, 39.55],
    "国家级基地3": [95.28, 40.29],
    "省级基地1": [98.36, 40.19],
    "省级基地2": [97.88, 39.49],
    "省级基地3": [95.77, 40.59],
    "市级基地1": [102.66, 38.89],
    "市级基地2": [101.23, 37.79],
    "市级基地3": [99.40, 39.69]
};
// 将坐标与值对应并反映在地图上
var convertData = function (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;
};

option = {
    tooltip: {
        trigger: 'item',
        formatter: function (params) {
            return params.name;
        }
    },
    visualMap: {
        type: 'piecewise',
        textStyle: {
            color: '#fff'
        },
        pieces: [
            {min: 300, label: '国家级基地', color: '#e3bf4c'},
            {min: 200, max: 300, label: '省级基地', color: '#be4f51'},
            {min: 100, max: 200, label: '市级基地', color: '#60c2cc'}
        ],
        color: ['#e3bf4c', '#be4f51', '#60c2cc']
    },
    geo: {
        map: '甘肃',
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    },
    series: [
        {
            type: 'effectScatter',
            coordinateSystem: 'geo',
            data: convertData([
                {name: "国家级基地1", value: 110},
                {name: "国家级基地2", value: 110},
                {name: "国家级基地3", value: 110},
                {name: "省级基地1", value: 210},
                {name: "省级基地2", value: 210},
                {name: "省级基地3", value: 210},
                {name: "市级基地1", value: 310},
                {name: "市级基地2", value: 310},
                {name: "市级基地3", value: 310}
            ]),
            symbolSize: 12,
            label: {
                normal: {
                    show: false
                },
                emphasis: {
                    show: false
                }
            },
            itemStyle: {
                emphasis: {
                    borderColor: '#fff',
                    borderWidth: 1
                }
            }
        }
    ]
};
if (option && typeof option === "object") {
    myChart.setOption(option, true);
}

最终效果

 


原文链接:https://www.cnblogs.com/luoshiliang/p/10398172.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:JavaScript 中的相等操作符 ( 详解 [] == []、[] == ![]、{} ==

下一篇:react项目和next项目修改默认端口号