四川飞线图

描述:当前是关于Echarts图表中的 示例。
 
            var uploadedDataURL = "/asset/get/s/data-1611715993304-jwEfLrwtW.geoJson";

var sichuan = "/asset/get/s/data-1576202716004-RTJpxnA2.json";

$.get(sichuan, function (uploadedDataURL) {
  echarts.registerMap('sichuan', uploadedDataURL);
  myChart.setOption({
    series: [{
      type: 'map',
      map: 'sichuan'
    }]
  });
  var planePath = 'path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z';
  var geoCoordMap = {
    '广元市': [105.850994, 32.439423],
    '达州市': [107.472292, 31.214554],
    '广安市': [106.638979, 30.461996],
    '遂宁市': [105.598849, 30.538848],
    '德阳市': [104.402117, 31.134352],
    '绵阳市': [104.684985, 31.471938],
    '成都市': [104.076356, 30.664024],
    '资阳市': [104.637312, 30.136206],
    '眉山市': [103.854842, 30.081277],
    '内江市': [105.061141, 29.586137],
    '自贡市': [104.782145, 29.348859],
    '泸州市': [105.448526, 28.878933],
    '宜宾市': [104.649403, 28.75826],
    '乐山市': [103.77254, 29.559197],
    '雅安市': [103.050114, 30.017042],
    '南充市': [106.115779, 30.845023],
    '巴中市': [106.115779, 30.845023],
    '攀枝花市': [101.724969, 26.588292],
    '甘孜藏族自治州': [101.96912, 30.056028],
    '阿坝藏族羌族自治州': [102.231991, 31.911642],
    '凉山彝族自治州': [102.262579, 27.888518],

  };


  var goData = [
    { name: '广元市', value: 0 },
    { name: '达州市', value: 0 },
    { name: '攀枝花市', value: 0 },
    { name: '成都市', value: 0 },
    { name: '德阳市', value: 0 },
    { name: '绵阳市', value: 0 },
    { name: '眉山市', value: 0 },

    { name: '内江市', value: 0 },
    { name: '自贡市', value: 0 },
    { name: '泸州市', value: 0 },
    {
      name: "甘孜藏族自治州",
      value: 0,
    },
    {
      name: "阿坝藏族羌族自治州",
      value: 0,
    },
    {
      name: "凉山彝族自治州",
      value: 0,
    },
    {
      name: "自贡市",
      value: 0,
    },
    {
      name: "泸州市",
      value: 0,
    },
    {
      name: "宜宾市",
      value: 0,
    },
    {
      name: "乐山市",
      value: 0,
    },
    {
      name: "雅安市",
      value: 0,
    },
    {
      name: "攀枝花市",
      value: 0,
    },
    {
      name: "达州市",
      value: 0,
    },
    {
      name: "广安市",
      value: 0,
    },
    {
      name: "遂宁市",
      value: 0,
    },
  ];
  var goTotal = 0;//计算总人数
  goData.forEach(function (item, i) {
    goTotal += item.value;
  })

  var planePath = 'arrow';
  var convertData = function (name, data) {
    var res = [];
    for (var i = 0; i < data.length; i++) {
      var fromCoord = geoCoordMap[name];
      var toCoord = geoCoordMap[data[i].name];
      if (fromCoord && toCoord) {
        res.push({
          //对换即可调整方向
          coords: [toCoord, fromCoord],
        });
      }
    }
    return res;
  };;
  var series = [];
  [
    ['成都市', goData],
    // ['徐州', backData],

  ].forEach(function (item) {
    series.push(
      {
        type: "lines",
        zlevel: 1,
        effect: {
          show: true,
          period: 10, //箭头指向速度,值越小速度越快
          trailLength: 0.5, //特效尾迹长度[0,1]值越大,尾迹越长重
          color: "#ffec6a", //箭头图标
          symbolSize: 7, //图标大小
        },
        lineStyle: {
          normal: {
            width: 0.1, //尾迹线条宽度

            opacity: 0.2, //尾迹线条透明度
            curveness: 0.3, //尾迹线条曲直度
          },
        },
        data: convertData(item[0], item[1]),
      },
      {
        //起点
        name: item[0],
        type: "effectScatter",
        coordinateSystem: "geo",
        zlevel: 2,
        //波纹效果
        rippleEffect: {
          //涟漪特效
          period: 4, //动画时间,值越小速度越快
          brushType: "stroke", //波纹绘制方式 stroke, fill
          scale: 4, //波纹圆环最大限制,值越大波纹越大
        },

        label: {
          normal: {
            show: true,
            color: "#ffde00",
            position: "left",
            formatter: "{b}",
            textStyle: {
              color: "#fff",
              fontSize: 20,
            },
          },
        },
        symbol: "circle",
        symbolSize: function (val) {
          return 10 + val[2] * 0; //圆环大小
        },

        //圆点大小
        /****symbolSize: function(val) {
            return val[2]*100 / goTotal;
        },***/
        itemStyle: {
          normal: {
            show: false,
            color: "#f00",
          },
        },
        data: item[1].map(function (dataItem) {
          return {
            name: dataItem.name,
            value: geoCoordMap[dataItem.name].concat([dataItem.value]),
          };
        }),
      },
      {
        //终点
        name: "item[0]",
        type: "effectScatter",
        coordinateSystem: "geo",
        zlevel: 2,
        //波纹效果
        rippleEffect: {
          period: 2,
          brushType: "stroke",
          scale: 3,
        },
        label: {
          normal: {
            show: false,
            position: "left",
            formatter: "{b}",
            color: "#ffde00",
          },
        },
        symbolSize: function () {
          return 25;
        },
        symbol: "circle",

        itemStyle: {
          normal: {
            show: true,
          },
        },
        data: [
          {
            name: item[0],
            value: geoCoordMap[item[0]].concat([100]),
          },
        ],
      },
      {
        type: "scatter",
        coordinateSystem: "geo",
        zlevel: 2,
        rippleEffect: {
          period: 4,
          brushType: "stroke",
          scale: 4,
        },
        label: {
          normal: {
            show: false,
            position: "right",
            //offset:[5, 0],
            color: "#0f0",
            formatter: "{b}",
            textStyle: {
              color: "#0f0",
            },
          },
          emphasis: {
            show: false,
            color: "#f60",
          },
        },
      }

    )

  });


  let option = {
    backgroundColor: "rgb(11,15,32)",

    tooltip: {
      trigger: "item",
      formatter: "{b}",
    },
    //线颜色及飞行轨道颜色
    visualMap: {
      //图例值控制
      min: 0,
      max: 1,
      calculable: true,
      show: false,
      color: ["#f44336", "#fc9700", "#ffde00", "#ffde00", "#00eaff"],
      textStyle: {
        color: "#fff",
      },
    },
    //地图相关设置
    geo: {
      map: "sichuan",
      //视角缩放比例
      zoom: 1,
      //显示文本样式
      label: {
        normal: {
          show: false,
          textStyle: {
            color: "rgba(255,255,255,.1)",
          },
        },
        emphasis: {
          show: false,
          textStyle: {
            color: "#fff", //滑过文字颜色
          },
        },
      },
      layoutSize: "100%",
      layoutCenter: ["55%", "50%"],
      mapLocation: {
        width: "110%",
        height: "97%",
      },
      //鼠标缩放和平移
      roam: true,
      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: {
          itemStyle: {
            areaColor: "#FFD181",
            borderColor: "#404a59",
            borderWidth: 1,
          },
        },
      },
    },

    series: series,
  };
  myChart.setOption(option);
  window.addEventListener("resize", function () {
    myChart.resize();
  });
})