echarts3 遷徙圖 遷入遷出

来源:https://www.cnblogs.com/minjh/archive/2018/03/21/8618499.html
-Advertisement-
Play Games

geoCoordMap = { '上海': [121.4648,31.2891], '佛山': [112.8955,23.1097], '保定': [115.0488,39.0948], '蘭州': [103.5901,36.3043], '包頭': [110.3467,41.4899], '北京'... ...


geoCoordMap = {
  '上海': [121.4648,31.2891],
  '佛山': [112.8955,23.1097],
  '保定': [115.0488,39.0948],
  '蘭州': [103.5901,36.3043],
  '包頭': [110.3467,41.4899],
  '北京': [116.4551,40.2539],
  '天津': [117.4219,39.4189],
  '常州': [119.4543,31.5582],
  '廣州': [113.5107,23.2196],
};
// 航班線路
var BJData = [
  [{name:'北京',value:90}, {name:'廣州',value:90}]
];
// 航班線路
var GZData = [
  [ {name:'廣州',value:90},{name:'北京',value:90}]
];
// 箭頭的svg
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';
// push進去航班線路開始-結束地點-經緯度
var convertData = function (data) {
  var res = [];
  for (var i = 0; i < data.length; i++) {
      var dataItem = data[i];
      var fromCoord = geoCoordMap[dataItem[0].name];
      var toCoord = geoCoordMap[dataItem[1].name];
      if (fromCoord && toCoord) {
          res.push({
              fromName: dataItem[0].name,
              toName: dataItem[1].name,
              coords: [fromCoord, toCoord]
          });
      }
  }
  return res;
};
//航班顏色
var color = ['#a6c84c', '#ffa022', '#46bee9'];
//航班數據
var series = [];
// 遍歷航班
[['廣州', GZData]].forEach(function (item, i) {
  // 列印航班線路
  console.log(convertData(item[1]))
  // 配置
  series.push({
      // 系列名稱,用於tooltip的顯示
      name: item[0] + ' Top10',
      type: 'lines',
      //用於 Canvas 分層,不同zlevel值的圖形會放置在不同的 Canvas 中
      zlevel: 1,
      //出發到目的地 的白色尾巴線條
      // 線特效的配置
      effect: {
          show: true,
          // 特效動畫的時間,單位為 s
          period: 6,
          // 特效尾跡的長度。取從 0 到 1 的值,數值越大尾跡越長
          trailLength: 0.7,
          // 特效標記的顏色
          color: '#fff',
          // 特效標記的大小
          symbolSize: 3
      },
      //出發到目的地 的線條顏色
      lineStyle: {
          normal: {
              color: color[i],
              width: 0,
              //fu度
              curveness: 0.2
          }
      },
      //開始到結束數據
      data: convertData(item[1])
      // data:
  },
  //出發地信息
  {
    name: '廣州',
    type: 'lines',
    coordinateSystem: 'geo',
    zlevel: 2,
    rippleEffect: {
        brushType: 'stroke'
    },
      label: {
          normal: {
              show: true,
              position: 'right',
              formatter: '{a}'
          }
      },
      effect: {
          show: true,
          period: 6,
          trailLength: 0,
          symbol: planePath,
          symbolSize: 15
      },
      lineStyle: {
          normal: {
              color: color[i],
              width: 1,
              opacity: 0.4,
              curveness: 0.2
          }
      },
      data: convertData(item[1])
  },

  // 目的地信息
  {
      name: '北京',
      type: 'effectScatter',
      coordinateSystem: 'geo',
      zlevel: 2,
      rippleEffect: {
          brushType: 'stroke'
      },
      label: {
          normal: {
              show: true,
              position: 'right',
              formatter: '{b}'
          }
      },
      symbolSize: function (val) {
          return val[2] / 8;
      },
      itemStyle: {
          normal: {
              color: color[i]
          }
      },
      data: item[1].map(function (dataItem) {
          return {
              name: dataItem[1].name,
              value: geoCoordMap[dataItem[1].name].concat([dataItem[1].value])
          };
      })
  });
});

//標題和風格參數
option = {
  backgroundColor: '#404a59',
  title : {
      text: '北京到廣州',
      subtext: '可否顯示北京這個出發地點?',
      left: 'center',
      textStyle : {
          color: '#fff'
      }
  },
  tooltip : {
      trigger: 'item'
  },
  legend: {
      orient: 'vertical',
      top: 'bottom',
      left: 'right',
      data:['廣州 Top10'],
      textStyle: {
          color: '#fff'
      },
      selectedMode: 'single'
  },
  geo: {
      map: 'china',
      //滑鼠移入是否顯示省份
      label: {
          emphasis: {
              show: true
          }
      },
      roam: true,
      itemStyle: {
          normal: {
              areaColor: '#323c48',
              borderColor: '#404a59'
          },
          emphasis: {
              areaColor: '#2a333d'
          }
      }
  },
  series: series
};

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言: 之前搞項目的時候,就使用了這個Fragment,中間遇到了許多坑,把坑都解決了,現在寫一篇較為簡單的Fragment使用總結 Fragment的簡單介紹: 簡單來說,Fragment其實可以理解為一個具有自己生命周期的控制項,只不過這個控制項又有點特殊,它有自己的處理輸入事件的能力,有自己的生命 ...
  • jest jest是facebook推出的一款測試框架,集成了前面所講的Mocha和chai,jsdom,sinon等功能。 安裝 npm install save dev jest npm install g jest 基本用法 和之前介紹的mocha和chai的功能很像,甚至可以相容mocha和 ...
  • 開通博客的第八十八天了。 今天還是沒怎麼寫代碼,好像一整天的狀態都不是很好。 不過希望今晚之後,接下來一個月再無鬆懈。 終於能通過編譯了,之前一直在報錯。。 因為備考,可能以後白天的時間要首先用來複習了。 但是每天寫代碼,每天學Node,每天更新博客園,還是會一直堅持的。 工作量鬥爭圖上了,可能也沒 ...
  • 變數提升 先說三句總結性的話: let 的「創建」過程被提升了,但是初始化沒有提升。 var 的「創建」和「初始化」都被提升了。 function 的「創建」「初始化」和「賦值」都被提升了。 所以,我們要註意,這三種變數提升,含義是不同的。 變數提升的規律 在進入一個執行上下文後,先把 var 和 ...
  • 先舉個例子: 結果: 結果: 原因: 解析器在向執行環境中夾在數據時,對函數聲明和函數表達式並非一視同仁。解析器會率先讀取函數聲明,並使其在執行任何代碼之前可用(可以訪問)。 說白了就是,用函數聲明形式定義的函數支持變數提升 ,而函數表達式形式的不行。 個人理解: 如果能夠變數提升,先用了再說,然後 ...
  • 1、v-if指令:判斷指令,根據表達式值得真假來插入或刪除相應的值。 2、v-show指令:條件渲染指令,無論返回的布爾值是true還是false,元素都會存在在html中,只是false的元素會隱藏在html中,並不會刪除. 3、v-else指令:配合v-if或v-else使用。 4、v-for指 ...
  • 通過ajax傳輸,跨域不能使用 dataType: 'jsonp',不然後端無法獲取文件,用 jsonp: 'callback' ...
  • 轉自:https://www.cnblogs.com/e0yu/p/7219930.html?utm_source=itdadao&utm_medium=referral#undefined 使用 angular JS 的時候,把 angularJS 放到文件底部,在渲染頁面的時候,會出現閃一下的情 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...