点位连线地图echarts scatter配置项内容和展示

配置项如下
      var uploadedDataURL = "/asset/get/s/data-1558504999148-FYury9CCf.json";
var target = '乌鲁木齐市'; //目标点城市名称
var data = [ //城市数据
    {
        "name": "乌鲁木齐市",
        "value": "20.18"
    },
    {
        "name": "巴音郭楞蒙古自治州",
        "value": "10.18"
    },
    {
        "name": "克拉玛依市",
        "value": "30.18"
    },
    {
        "name": "克孜勒苏柯尔克孜自治州",
        "value": "40.18"
    },
    {
        "name": "哈密市",
        "value": "50.18"
    },
    {
        "name": "和田地区",
        "value": "0.18"
    },
    {
        "name": "博尔塔拉蒙古自治州",
        "value": "80.18"
    }
]
var chart = echarts.init(document.getElementById('chart-panel'));
//根据数值获取颜色
var getColor = function(value) {
    if (value <= 20) {
        return '#00ffff';
    } else if (value <= 40) {
        return '#00ff00';
    } else if (value <= 60) {
        return '#ffff00'
    } else if (value <= 80) {
        return '#ffa500';
    } else if (value <= 100) {
        return '#ff3333';
    } else {
        return '#ddd';
    }
}
var geoJson; //地图json
$.ajax({
    url: uploadedDataURL,
    dataType: 'json',
    success: function(json) {
        geoJson = json;
        echarts.registerMap('XJ', json);

        //点击点位时切换目标点位
        chart.on('click', function(obj) {
            if (obj.seriesName == 'city') {
                target = obj.data.name;
                setData();
            }
        });
        setData();
    }
});

function setData() {
    var pointData = []; //点位数据
    var lineData = []; //连线数据
    var center = []; //目标点坐标
    var features = geoJson.features;
    var targetCoord; //目标点坐标
    //获取目标点坐标
    $.each(features, function(i, v) {
        if (target == v.properties.name) {
            targetCoord = v.properties.center;
            return false;
        }
    });
    //匹配点位坐标 和 连线的坐标
    $.each(data, function(i, v) {
        $.each(features, function(j, val) {
            if (val.properties.name === v.name) {
                if (v.name !== target) {
                    //debugger;
                    lineData.push({
                        coords: [
                            val.properties.center,
                            targetCoord
                        ],
                        lineStyle: {
                            color: getColor(v.value)
                        }
                    });
                }
                pointData.push({
                    name: v.name,
                    value: val.properties.center.concat(v.name, v.value)
                });
                return false;
            }
        });
    });

    var option = {
        backgroundColor: '#162838',
        tooltip: {
            trigger: 'item'
        },
        geo: { //地图
            show: true,
            map: 'XJ',
            label: {
                normal: {
                    show: false
                },
                emphasis: {
                    show: false,
                }
            },
            roam: true,
            itemStyle: {
                normal: {
                    areaColor: '#001425',
                    borderColor: '#999',
                    borderWidth: 2,
                },
                emphasis: {
                    areaColor: '#001425',
                }
            }
        },
        series: [{ //城市点位
                name: 'city',
                type: 'scatter',
                coordinateSystem: 'geo',
                symbol: 'circle',
                symbolSize: function(v) {
                    if (v[2] == target) { //目标点放大
                        return 25;
                    } else {
                        return 15;
                    }
                },
                itemStyle: {
                    normal: {
                        color: function(obj) { //标志颜色
                            return getColor(obj.data.value[3]);
                        }
                    }
                },
                zlevel: 9,
                data: pointData,
                tooltip: {
                    formatter: function(obj) {
                        var label = obj.data.name == target ? '本地排放:' : '区域输送:';
                        var str = obj.data.name + '<br/>' + label + obj.data.value[3];
                        return str;
                    }
                }
            },
            { //城市点位的涟漪效果
                type: 'effectScatter',
                coordinateSystem: 'geo',
                data: pointData,
                symbolSize: 5,
                showEffectOn: 'render',
                rippleEffect: {
                    brushType: 'stroke',
                    scale: 10
                },
                hoverAnimation: false,
                itemStyle: {
                    normal: {
                        color: function(obj) { //标志颜色
                            return getColor(obj.value[3]);
                        },
                        shadowBlur: 20,
                    }
                },
                zlevel: 5,
                label: {
                    normal: {
                        show: true,
                        position: 'bottom',
                        offset: [0, 10],
                        formatter: function(value) {
                            return value.name
                        },
                        textStyle: {
                            color: '#fff',
                            fontSize: 12,
                        }
                    }
                },
            }, { //连线的尾部效果
                type: 'lines',
                zlevel: 1,
                effect: {
                    symbol: 'arrow',
                    show: true,
                    period: 6,
                    trailLength: 0.5,
                    color: '#fff',
                    symbolSize: 8
                },
                lineStyle: {
                    normal: {
                        color: '#c2f555',
                        width: 0,
                        curveness: 0.2
                    }
                },
                data: lineData
            }, { //连线的线条和箭头
                type: 'lines',
                zlevel: 2,
                symbol: 'none',
                symbolSize: 10,
                effect: {
                    show: true,
                    period: 6,
                    trailLength: 0,
                    symbol: 'arrow',
                    symbolSize: 15
                },
                lineStyle: {
                    normal: {
                        color: '#c2f555',
                        width: 3,
                        opacity: 0.6,
                        curveness: 0.2
                    }
                },
                data: lineData
            }
        ]
    };
    chart.setOption(option);
}
    
截图如下