angular echarts 中國散點圖

angular7中引入中國地圖
最近項目中需要做一個數(shù)據(jù)大屏氓涣,用中國地圖散點圖展示一些數(shù)據(jù)鹃操,
圖表用的是echart4.2.1春哨,angular版本是7.1.0
下面簡要介紹一下實現(xiàn)過程:

第一步:

在angular.json中引入china.js恩伺,


angular-json-config.png

如果你要展示的是省份地圖赴背,那就把省份js文件加進去晶渠,所有的省份js文件可以在node_modules/echarts/map/js/province目錄下找到凰荚;


province-js.png

第二步:

在業(yè)務(wù)組件中導(dǎo)入china.js褒脯,這一步很關(guān)鍵,沒有導(dǎo)入的話地圖出不來番川;


import-china-js.png

第三步:

設(shè)置中國地圖散點圖配置項;

  public chinaMapOption: EChartOption = {
    backgroundColor: '#080B34',
    tooltip: {
      trigger: 'item',
      formatter: (params) => {
        return `${params.name}: ${this.decimalPipe.transform(params.value[2])} 元`;
      }
    },
    // 散點數(shù)據(jù)中不同范圍值所對應(yīng)的表現(xiàn)狀態(tài)
    visualMap: {
      min: 0,
      // max: 300,
      calculable: true,
      // visualMap-piecewise 控制散點圖時 inrange同時也定義了散點的顏色尺寸等
      inRange: {
        color: ['#FEC696'], // 散點范圍的顏色
        colorAlpha: 1, // 透明度
      },
      textStyle: {
        color: '#fff'
      },
      // 隱藏手柄
      show: false,
    },
    geo: {
      map: 'china',
      // 開啟鼠標(biāo)縮放和漫游
      roam: true,
      // 縮放極限控制
      scaleLimit: {
        min: 0.5,
        max: 8
      },
      // 當(dāng)前視角的縮放比例
      zoom: 1.2,
      label: {
        emphasis: {
          show: false
        }
      },
      itemStyle: {
        // 地圖背景色
        normal: {
          areaColor: '#559aeb',
          borderColor: '#111'
        },
        // hover時的背景色
        emphasis:
        {
          areaColor: '#559aeb'
        }
      }
    },
    series: [
      {
        name: '銷售建檔',
        type: 'scatter', // 添加散點系列
        coordinateSystem: 'geo', // 坐標(biāo)系為地理坐標(biāo)系
        symbolSize: function (val) {
          return val[3]; // 散點圓圈的大小
          // return 10;
        },
        label: {
          normal: {
            show: false
          },
          emphasis: {
            show: false
          }
        },
        itemStyle: {
          normal: {
            color: '#FEC696',
            // opacity: 1 // 散點透明度
          }
        }
      }
    ]
  };

  // series.data數(shù)據(jù)需要把后臺返回的數(shù)據(jù)處理之后再賦值颁督,其數(shù)據(jù)格式為 [{name: '城市名稱', value: [維度值,經(jīng)度值沉御,散點值,...]}]
  public redrawChinaMap(res) {
    const result = [];
    let transaction_volume = [];
    if (res.length) {
      transaction_volume = res.map(item => {
        const obj = {
          name: item.city_name,
          value: [Number(item.wgs84_lng), Number(item.wgs84_lat), Number(item.transaction_volume), item.bubble_size.toFixed()]
        };
        result.push(obj);
        return item.transaction_volume;
      });
    }
    this.datas.maxValue = Math.max(...transaction_volume);
    this.chinaMapOption.visualMap.max = this.datas.maxValue;
    this.chinaMapOption.series[0]['data'] = result;
    if (this.instance.chinaMap) {
      // 縮放地圖后刷新數(shù)據(jù)保持縮放狀態(tài)
      this.instance.chinaMap.setOption({
        visualMap: {
          max: this.datas.maxValue
        },
        series: [{
          data: result
        }]
      });
    }
  }

// html
<div class="chart-div" echarts [options]="chinaMapOption" [autoResize]="true"></div>

加載城市級別的中國地圖

1.配置tsconfig.json

在 compilerOptions 中加上這兩個配置吠裆,將json文件作為模塊解析

    "resolveJsonModule": true,
    "esModuleInterop": true,
2.在組件中引入 json 文件
import chinaCityJson from 'echarts/map/json/china-cities.json';
3.圖表初始化時注冊地圖
  public chartInit(ec) {
    this.instance = ec;
    echarts.registerMap("china", chinaCityJson);
  }

另外,數(shù)據(jù)大屏一般會需要全屏展示试疙,布局啥的最好用百分比,如果全屏與非全屏切換時UI設(shè)計有不一樣的地方效斑,可以監(jiān)聽window resize事件來實現(xiàn)不同的效果非春。
不要問我為啥不監(jiān)聽fullscreenchange事件缓屠,試了,不起作用敌完。

    this.eventManager.addGlobalEventListener('window', 'resize', () => {
      // window.innerHeight: 可視區(qū)域(瀏覽器窗口高度+滾動條高度)储耐,screen.height:顯示器的物理高度此時為全屏
      if (window.innerHeight === screen.height) {
        }
    });
// 這是一段沒什么用的代碼
// @HostListener('document:fullscreenchange', ['$event'])
// @HostListener('document:webkitfullscreenchange', ['$event'])
// @HostListener('document:mozfullscreenchange', ['$event'])
// @HostListener('document:MSFullscreenChange', ['$event'])
// fullscreenmode(){}

最后效果如圖滨溉,全屏?xí)r會放大


bubble-china-map.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末长赞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子得哆,更是在濱河造成了極大的恐慌,老刑警劉巖哟旗,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異闸餐,居然都是意外死亡,警方通過查閱死者的電腦和手機舍沙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拂铡,“玉大人壹无,你說我怎么就攤上這事感帅「裨猓” “怎么了留瞳?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長她倘。 經(jīng)常有香客問我璧微,道長硬梁,這世上最難降的妖魔是什么前硫? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任荧止,我火速辦了婚禮屹电,結(jié)果婚禮上跃巡,老公的妹妹穿的比我還像新娘危号。我一直安慰自己素邪,他們只是感情好外莲,可當(dāng)我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著偷线,像睡著了一般。 火紅的嫁衣襯著肌膚如雪声邦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天亥曹,我揣著相機與錄音,去河邊找鬼歇式。 笑死胡野,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的龙巨。 我是一名探鬼主播熊响,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼秸弛!你這毒婦竟也來了洪碳?” 一聲冷哼從身側(cè)響起递览,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤绞铃,失蹤者是張志新(化名)和其女友劉穎嫂侍,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挑宠,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年亿汞,在試婚紗的時候發(fā)現(xiàn)自己被綠了揪阿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咆畏。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡吴裤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出钮蛛,到底是詐尸還是另有隱情剖膳,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布甸饱,位于F島的核電站仑濒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏墩瞳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一热凹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧碌嘀,春花似錦、人聲如沸歪架。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至攒霹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間催束,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留塔淤,地道東北人。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓高蜂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親备恤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹 對...
    cosWriter閱讀 11,111評論 1 32
  • 點擊上方藍字關(guān)注“橘子橙”惭笑,每天第一時間,傾聽我的故事脖咐。 — 1 — 人家都說最美的戀愛是在高中時期汇歹。喜歡就喜歡屁擅,...
    樹林木閱讀 293評論 0 0
  • 記得是兩個月前产弹,讀到一篇文章派歌,一個成功人士在提到自己的成功時痰哨,把自己的成功歸因于她父親在她小時候?qū)λM行的“失敗”...
    田小丫_Stella閱讀 441評論 0 1
  • 在前面我也寫過幾篇關(guān)于設(shè)計海報的思路,今天我將用實操來講述我設(shè)計海報的思路斤斧,不過這次的海報設(shè)計是在原來的海報基礎(chǔ)上...
    設(shè)計小余閱讀 583評論 0 7
  • 軟床 SX11010-1 價格:7680 床尾凳:SX08021-1 1680 1.設(shè)計獨特,打破傳統(tǒng)圓床單...
    再現(xiàn)一簾幽夢閱讀 304評論 0 0