echarts中国地图 飞线 热力

<template>
  <div style="width: 100%; height: 100%; padding: 5px 10px">
    <div id="map" style="width: 788px; height: 700px"></div>
  </div>
</template>

<script>
import axios from "axios";
import china from "../../utils/china.json";
export default {
  props: [],
  data() {
    return {
      hotData: [],
      fromData: [],
    };
  },
  methods: {
    getStatisticsClientType() {
      let that = this;
      axios
        .post(
          "https://avamayun.xingbiaoyi.com/overviewScreen/statisticsRegionScanCode"
        )
        .then(function (res) {
          that.hotData = [
            {
              log: 121.07299,
              scanCount: 1526,
              region: "南通市",
              lat: 32.06764,
            },
            {
              log: 120.642654,
              scanCount: 1167,
              region: "上海市",
              lat: 24.490033,
            },
            {
              log: 118.85578,
              scanCount: 26,
              region: "红河哈尼族彝族自治州",
              lat: 31.79811,
            },
            {
              log: 113.33685,
              scanCount: 23,
              region: "广州市",
              lat: 23.13491,
            },
            {
              log: 103.83845,
              scanCount: 16,
              region: "兰州市",
              lat: 36.0766,
            },
            {
              log: 113.06644,
              scanCount: 7,
              region: "长沙市",
              lat: 28.25761,
            },
          ];
          //  that.hotData = res.data
           that.hotData.map((i) => {
            i.name = i.region;
            i.value = [i.log, i.lat, i.scanCount];
            // i.visualMap = false;
          });
         
          that.initChart();
        })
        .catch(function (error) {
          console.log(error);
        });
    },
    getInfo() {
      let that = this;
      axios
        .post(
          "https://avamayun.xingbiaoyi.com/overviewScreen/scanCodeMigrationMap"
        )
        .then(function (res) {
          const arr = [];
          res.data.map((i) => {
            arr.push([
              {
                coord: i.from.split(","),
              },
              {
                coord: i.to.split(","),
              },
            ]);
          });
          that.fromData = arr;
          that.initChart();
        })
        .catch(function (error) {
          console.log(error);
        });
    },

    initChart() {
      this.setOptions();
    },
    setOptions() {
      let myChart = echarts.init(document.getElementById("map"), "macarons");
      window.addEventListener("resize", () => {
        myChart.resize();
      });
      echarts.registerMap("china", china);
      const option = {
        visualMap: {
          type: "continuous",
          min: 0,
          max: 12,
          splitNumber: 3,
          inRange: {
            color: ["#dec674", "#ffc20e"],
          },
          textStyle: {
            color: "#fff",
          },
          show: false,
        },
        geo: {
          map: "china",
          roam: true,
          center: [110.97, 35.71],
          layoutCenter: ["100%", "100%"],
          zoom: 1,
          // roam: true, //支持拖拽缩放
          scaleLimit: {
            //滚轮缩放的极限控制
            min: 1, //缩放最小大小
            max: 6, //缩放最大大小
          },
          label: {
            normal: {
              show: false,
              textStyle: {
                color: "#fff",
                fontSize: 8,
              },
            },
            emphasis: {
              show: true,
              textStyle: {
                color: "#fff",
              },
            },
          },
          itemStyle: {
            areaColor: "rgba(0, 23, 58, 1)",
            borderColor: "rgba(85, 147, 193, 1)",
            borderWidth: 1,
            emphasis: {
              borderWidth: 1,
              borderColor: "rgba(60,233,255,1)",
              areaColor: "rgba(0, 23, 58, 1)",
            },
          },
        },
        // visualMap: {
        //   min: 0,
        //   max: 1,
        //   calculable: false,
        //   realtime: false,
        //   inRange: {
        //     color: [
        //       "#fcf16e",
        //       "#dec674",
        //       "#ffe600",
        //       "#ffd400",
        //       "#ffd400",
        //       "#ffc20e",
        //     ],
        //   },
        // },
        series: [
          {
            type: "heatmap",
            coordinateSystem: "geo",
            data: this.hotData,
            color: [
              "#fcf16e",
              "#dec674",
              "#ffe600",
              "#ffd400",
              "#ffd400",
              "#ffc20e",
            ],
            // symbolSize: function (val) {
            //   return val[2] * 1;
            // },
            // itemStyle: {
            //   normal: {
            //     color: "#ddb926",
            //   },
            // },
          },
          {
            type: "lines",
            zlevel: 2,
            effect: {
              show: true,
              period: 4, //箭头指向速度,值越小速度越快
              trailLength: 0.4, //特效尾迹长度[0,1]值越大,尾迹越长重
              symbol: "circle", //箭头图标
              symbolSize: 7, //图标大小
            },
            lineStyle: {
              normal: {
                color: "#FFB800",
                width: 0, //线条宽度
                opacity: 0.1, //尾迹线条透明度
                curveness: 0.2, //尾迹线条曲直度
              },
            },
            data: this.fromData,
          },
        ],
      };
      myChart.setOption(option);
    },

   
  },
  created() {
    this.getInfo();
    this.getStatisticsClientType();
  },
};
</script>

<style lang="scss" scoped>
</style>

### 回答1: echarts3d地图线效果指的是通过使用echarts3d插件来实现地图上的线动画效果。echarts3d是一款基于JavaScript的可视化图表库,能够帮助用户轻松创建各种动态、交互性的图表。 要实现地图线效果,首先需要引入echarts3d插件,并加载相关的地图数据。然后,在echarts3d提供的配置中,设置多个起点和终点坐标,根据坐标信息绘制出对应的连线。 接下来,可以通过设置图表的样式和动画效果来实现线的效果。可以设置连线的颜色、粗细,以及起点和终点的标记形状和颜色等。为了实现动画效果,可以设置连线的透明度、延迟和持续时间等属性,使连线地图上呈现出移动的效果。 此外,可以通过设置图表的交互功能,使用户可以通过鼠标移动和缩放来浏览地图,并与线进行交互。通过添加鼠标事件和回调函数,可以实现鼠标悬停时的高亮效果,点击时的弹出信息窗口等交互操作。 总之,echarts3d地图线效果通过使用echarts3d插件,绘制地图和连线,并通过配置样式和动画效果,以及添加交互功能来实现。这种线效果可以使地图更加生动和有趣,帮助用户更好地理解和分析地理数据。 ### 回答2: Echarts3D地图线效果是Echarts库中的一种可视化效果,可以展示地理关系的动态连接。该效果利用地理坐标,将各个地点通过曲线线的方式连接起来,形成动态的数据流动效果。 要实现Echarts3D地图线效果,首先需要准备好数据,包括地点的经纬度和数据的数值。然后在Echarts图表中添加地理坐标系,配置好相关参数,并引入Echarts3D插件。 通过设置地图的初始视角、地点的标记和数值,以及曲线的配置,可以使得地图上的数据点按照指定的路径线连接。你可以设置曲线的颜色、粗细、动画效果等参数,以使得线效果更加醒目动态。 此外,你还可以通过配置相关参数,使得线的路径和数值能够适应不同的数据需求,例如配置线条的颜色渐变、设置曲线的弯曲度、更改线的速度等等。这些配置参数都可以根据你的实际需求进行调整。 总之,Echarts3D地图线效果提供了一种直观而动态的数据展示方式,帮助我们更好地理解地理关系和数据之间的联系。通过合理配置参数和数据,我们可以创造出各种各样的地图线效果,将数据可视化呈现,提升数据分析和展示的效果。 ### 回答3: ECharts 是一款基于JavaScript的可视化库,提供了丰富的图表类型以及交互功能。其中 ECharts 3D 地图线效果是该库的一个独特的功能,可以用于展示地理数据之间的关联关系。 ECharts 3D 地图线效果主要包括两个部分:折线地图线动画。首先,我们可以使用 ECharts地图类型(如 scatter3D 或 lines3D)来绘制一个折线地图,将地理数据可视化展现出来。通过设置相应的经纬度坐标以及其他数据属性,可以在地图上绘制出各个地点的标记点。 接下来,通过配置线动画的特效参数,可以实现地理数据之间的线效果。通过定义起点和终点的经纬度坐标,以及线的属性(如颜色、宽度、透明度等),ECharts 可以自动生成一条线路径,并在地图上进行动画展示。 在线动画中,可以通过设置行时间、延迟等参数来控制效果的展示和流畅度。此外,可以通过配置文本标签等样式属性,将线上的数据信息以文字形式展示出来,增强了地理数据之间的可视化效果和交互性。 综上所述,ECharts 3D 地图线效果通过折线地图线动画的结合,能够直观地展示地理数据之间的关联关系。用户可以通过设置经纬度、属性参数以及动画特效等自定义地理数据的可视化呈现方式,从而实现丰富多样的数据展示效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值