zoukankan      html  css  js  c++  java
  • echarts实现地图漫入漫出效果

    一、需求:效果图如下,各国家数据呈现流入中国效果(漫入)

    二、前端如何实现

    1. 实现方式:使用echarts,详细配置项可参见echarts官网

    2. 实现分析:

    • 地图实现可使用echarts的geo组件(geo: 地理坐标系). geo组件需要引入对应的地图数据,此处的引入方式是引入JSON 文件,通过 AJAX 异步加载后手动注册。
    • 地图上的线动画效果可使用effect配置
    • 地图上的城市坐标点可使用effectScatter配置

    3. 代码如下:

    <template>
      <view-template class="a2-roam">
        <div id="chart" style=" 1360px; height:1200px;"></div>
      </view-template>
    </template>
    <script>
    import echarts from 'echarts';
    
    import world from '../assets/mapData/world_geo.json';
    import worldGeoCoordMap from '../assets/mapData/worldPosition.js';
    
    export default {
      data() {
        return {
          chart: null,
          color: ['#33ff77', '#fff066', '#00ffff', '#33ff77', '#fff066', '#00ffff', '#33ff77', '#fff066', '#00ffff', '#33ff77'],
          internationalRoamOutDataR: [],
          internationalRoaminDataLR: [],
          internationalRoamOutDataLR: [],
          option1: {
            geo: {
              map: 'world',
              left: 0,
              top: 300,
              right: 0,
              bottom: 100,
              silent: true,
              label: {
                normal: {
                  show: false
                }
              },
              itemStyle: {
                normal: {
                  areaColor: '#1d61ea',
                  borderColor: '#0c0f26'
                }
              },
              regions: [
                {
                  name: 'China',
                  itemStyle: {
                    normal: {
                      areaColor: '#e88f65'
                    }
                  },
                  label: {
                    normal: {
                      show: true,
                      fontSize: 30,
                      fontWeight: 'bold',
                      color: '#fff',
                      formatter() {
                        return '中华人民共和国'
                      }
                    }
                  }
                }
              ]
            },
            tooltip: {
              show: true,
              textStyle: {
                fontSize: 18,
                color: '#fff'
              }
            },
            series: [
              {
                seriesName: 'lines',
                type: 'lines',
                // 使用的坐标系
                coordinateSystem: 'geo',
                animation: true,
                zlevel: 10,
                label: {
                  normal: {
                    show: false
                  },
                  emphasis: {
                    show: false
                  }
                },
                // 线特效的配置
                effect: {
                  show: true,
                  period: 10,
                  // color: 'linear-gradient(yellow, white)',
                  symbol: 'roundRect',
                  symbolSize: 5,
                  trailLength: 0.5,
                  loop: true
                },
                data: [
                  {
                    coords: [worldGeoCoordMap['俄罗斯'], worldGeoCoordMap['湖北']],
                    lineStyle: {
                      normal: {
                        color: '#00ffff',
                         1,
                        curveness: 0.2
                      }
                    }
                  },
                  {
                    coords: [worldGeoCoordMap['加拿大'], worldGeoCoordMap['湖北']],
                    lineStyle: {
                      normal: {
                        color: '#00ffff',
                         1,
                        curveness: 0.2
                      }
                    }
                  },
                  {
                    coords: [worldGeoCoordMap['西班牙'], worldGeoCoordMap['湖北']],
                    lineStyle: {
                      normal: {
                        color: '#00ffff',
                         1,
                        curveness: 0.2
                      }
                    }
                  },
                  {
                    coords: [worldGeoCoordMap['意大利'], worldGeoCoordMap['湖北']],
                    lineStyle: {
                      normal: {
                        color: '#00ffff',
                         1,
                        curveness: 0.2
                      }
                    }
                  },
                  {
                    coords: [worldGeoCoordMap['美国'], worldGeoCoordMap['湖北']],
                    lineStyle: {
                      normal: {
                        color: '#00ffff',
                         1,
                        curveness: 0.2
                      }
                    }
                  }
                ]
              },
              {
                seriesName: 'point',
                type: 'effectScatter',
                coordinateSystem: 'geo',
                tooltip: {
                  show: true,
                  formatter(params) {
                    return params.name;
                  }
                },
                symbolSize: 12,
                rippleEffect: {
                  brushType: 'fill'
                },
                label: {
                  normal: {
                    show: true,
                    formatter(params) {
                      return params.name;
                    },
                    color: '#fff',
                    fontFamily: 'Microsoft Yahei',
                    fontSize: 22,
                    position: 'top',
                    distance: 10
                  }
                },
                zlevel: 99,
                data: [
                  {
                    name: '湖北',
                    value: worldGeoCoordMap['湖北'],
                    itemStyle: {
                      normal: {
                        color: '#00ffff'
                      }
                    },
                    label: {
                      normal: {
                        show: false
                      }
                    }
                  },
                  {
                    name: '俄罗斯',
                    value: worldGeoCoordMap['俄罗斯'],
                    itemStyle: {
                      normal: {
                        color: '#00ffff'
                      }
                    }
                  },
                  {
                    name: '西班牙',
                    value: worldGeoCoordMap['西班牙'],
                    itemStyle: {
                      normal: {
                        color: '#00ffff'
                      }
                    }
                  },
                  {
                    name: '加拿大',
                    value: worldGeoCoordMap['加拿大'],
                    itemStyle: {
                      normal: {
                        color: '#00ffff'
                      }
                    }
                  },
                  {
                    name: '意大利',
                    value: worldGeoCoordMap['意大利'],
                    itemStyle: {
                      normal: {
                        color: '#00ffff'
                      }
                    }
                  },
                  {
                    name: '美国',
                    value: worldGeoCoordMap['美国'],
                    itemStyle: {
                      normal: {
                        color: '#00ffff'
                      }
                    }
                  }
                ]
              }
            ]
          }
        }
      },
      mounted() {
        this.init();
      },
      methods: {
        // 初始化
        init() {
          echarts.registerMap('world', world);
          this.chart = echarts.init(document.getElementById('chart'));
          this.chart.setOption(this.option1);
        }
      },
      components: {
      },
      beforeDestroy() {
        if (this.chart) {
          this.chart.dispose();
        }
      }
    }
    </script>
    View Code

    tips: 代码要点提取:

      • 首先定义一个echarts容器--id是chart的div
      • 引入echarts、世界地图json文件、世界地图位置的js文件

    • 手动注册地图echarts.registerMap('world', world)

    • 定义echarts的配置项option(注意使用地理坐标系组件geo),并setOption。
    致力于前端技术学习与分享,会及时更新博客。
  • 相关阅读:
    【H3 BPM工作流程管理产品小故事】第六篇 条件可见与条件必填
    【H3 BPM工作流程管理产品小故事】第五篇 必填与水印文本
    【H3 BPM工作流程管理产品小故事】第四篇 子表创建
    【工作流程管理产品小故事】第三篇 参与者与数据加载
    【H3 BPM工作流程管理产品小故事】第二篇 文本默认值
    【H3 BPM工作流程管理产品小故事】第一篇 配置简单流程
    流程管理产品小故事汇总贴
    【H3 BPM工作流程产品小故事】第十四篇 数据字典与数据联动
    【H3 BPM工作流程产品小故事】第十三篇 消息通知
    【H3 BPM工作流程产品小故事】第十二篇 触发其他流程
  • 原文地址:https://www.cnblogs.com/caoxueying2018/p/11177375.html
Copyright © 2011-2022 走看看