echart 自定義 SVG 圖各部分的對應(yīng)關(guān)系

前言

以官網(wǎng)給出的例子牛的圖片為例子,這里主要解釋一下后臺返回到前端的代碼如何映射到SVG圖的各個部分

學(xué)習(xí)鏈接:registerMap

例子鏈接:例子

SVG圖片:


JS部分:

var echarts = require('echarts');

var ROOT_PATH =
  'https://fastly.jsdelivr.net/gh/apache/echarts-website@asf-site/examples';

var chartDom = document.getElementById('main');
var myChart = echarts.init(chartDom);
var option;

$.get(ROOT_PATH + '/data/asset/geo/Beef_cuts_France.svg', function (svg) {
  echarts.registerMap('Beef_cuts_France', { svg: svg });
  option = {
    tooltip: {},
    visualMap: {
      left: 'center',
      bottom: '10%',
      min: 5,
      max: 100,
      orient: 'horizontal',
      text: ['', 'Price'],
      realtime: true,
      calculable: true,
      inRange: {
        color: ['#dbac00', '#db6e00', '#cf0000']
      }
    },
    series: [
      {
        name: 'French Beef Cuts',
        type: 'map',
        map: 'Beef_cuts_France',
        roam: true,
        emphasis: {
          label: {
            show: false
          }
        },
        selectedMode: false,

## 后臺返回的數(shù)據(jù)
        data: [
          { name: 'Queue', value: 15 },
          { name: 'Langue', value: 35 },
          { name: 'Plat de joue', value: 15 },
          { name: 'Gros bout de poitrine', value: 25 },
          { name: 'Jumeau à pot-au-feu', value: 45 },
          { name: 'Onglet', value: 85 },
          { name: 'Plat de tranche', value: 25 },
          { name: 'Araignée', value: 15 },
          { name: 'G?te à la noix', value: 55 },
          { name: "Bavette d'aloyau", value: 25 },
          { name: 'Tende de tranche', value: 65 },
          { name: 'Rond de g?te', value: 45 },
          { name: 'Bavettede de flanchet', value: 85 },
          { name: 'Flanchet', value: 35 },
          { name: 'Hampe', value: 75 },
          { name: 'Plat de c?tes', value: 65 },
          { name: 'Tendron Milieu de poitrine', value: 65 },
          { name: 'Macreuse à pot-au-feu', value: 85 },
          { name: 'Rumsteck', value: 75 },
          { name: 'Faux-filet', value: 65 },
          { name: 'C?tes Entrec?tes', value: 55 },
          { name: 'Basses c?tes', value: 45 },
          { name: 'Collier', value: 85 },
          { name: 'Jumeau à biftek', value: 15 },
          { name: 'Paleron', value: 65 },
          { name: 'Macreuse à bifteck', value: 45 },
          { name: 'G?te', value: 85 },
          { name: 'Aiguillette baronne', value: 65 },
          { name: 'Filet', value: 95 }
        ]
      }
    ]
  };
  myChart.setOption(option);
});

option && myChart.setOption(option);

這就帶來一個問題夯秃,后臺返回的數(shù)據(jù)是如何映射到SVG圖的各個部分上的呢顽冶?

通過查看 SVG 的html代碼:


其實(shí)后臺傳來的數(shù)據(jù)的 name沼沈,需要與SVG圖片html代碼相應(yīng)部位的name 的內(nèi)容相對應(yīng)

data: [
          { name: 'Queue', value: 15 },
          { name: 'Langue', value: 35 },
          { name: 'Plat de joue', value: 15 }
]

## 對應(yīng) SVG 圖

<path name="Queue"
   style="fill:#921319;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
   d="m 79.1875,42.625 -28.28125,0.71875 -16.25,7.0625 -19.09375,26.875 -5.65625,26.84375 -0.84375,105.25 10.03125,-0.28125 2.125,-108.5 3.34375,-7.9375 -0.15625,-0.0625 c 0.127935,-0.148353 0.252038,-0.334229 0.375,-0.5 l 4.625,-10.90625 c 1.160782,-3.331585 2.453475,-6.881357 4.25,-10.15625 l 1.6875,-4 1.21875,-0.3125 c 3.89521,-4.622798 9.81761,-8.067743 12.75,-9.5625 L 73.5,44.84375 l 3.5625,0 2.125,-2.21875 z"
   transform="matrix(0.6362812,0,0,0.6362812,7.6936433,-10.065285)"
   id="path3704"
   inkscape:connector-curvature="0" />

<path name="Langue"
   style="fill:#921319;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
   d="m 536.375,106.46875 c 5.2885,14.34201 10.52945,33.1769 13.78125,43.21875 -0.0655,0.0771 -0.13181,0.1476 -0.21875,0.21875 l 16.5625,0.9375 10.5,-8.5 11,-17 -13.5,-18 -38.125,-0.875 z"
   id="path3702"
   transform="matrix(0.6362812,0,0,0.6362812,7.6936433,-10.065285)"
   inkscape:connector-curvature="0" />

<path name="Plat de joue"
   style="fill:#921319;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
   d="m 479.875,78.9375 c 0.34134,7.189091 0.93966,14.327462 3.25,20.84375 7.5898,21.40693 18.02765,40.11508 34.125,55.21875 -5.6799,1.95428 -9.21826,3.15884 -11.875,4.09375 0.41224,0.77565 1.5132,2.80766 1.625,3.03125 0.81585,1.6317 7.32508,-4.6998 16.75,-8.25 6.91248,-2.6038 24.01189,-1.36903 26.40625,-4.1875 C 545.49285,135.28652 536.7499,102.74928 529.625,91.40625 520.34937,82.635259 489.68249,79.683068 479.875,78.9375 z"
   transform="matrix(0.6362812,0,0,0.6362812,7.6936433,-10.065285)"
   id="path3698"
   inkscape:connector-curvature="0" />

對應(yīng)上以后,后臺數(shù)據(jù)json的數(shù)值就可以對應(yīng)上相應(yīng)的SVG部位了,


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末第献,一起剝皮案震驚了整個濱河市破加,隨后出現(xiàn)的幾起案子俱恶,更是在濱河造成了極大的恐慌,老刑警劉巖范舀,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件合是,死亡現(xiàn)場離奇詭異,居然都是意外死亡锭环,警方通過查閱死者的電腦和手機(jī)聪全,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辅辩,“玉大人难礼,你說我怎么就攤上這事娃圆。” “怎么了蛾茉?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵讼呢,是天一觀的道長。 經(jīng)常有香客問我臀稚,道長吝岭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任吧寺,我火速辦了婚禮窜管,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘稚机。我一直安慰自己幕帆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布赖条。 她就那樣靜靜地躺著失乾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪纬乍。 梳的紋絲不亂的頭發(fā)上碱茁,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機(jī)與錄音仿贬,去河邊找鬼纽竣。 笑死,一個胖子當(dāng)著我的面吹牛茧泪,可吹牛的內(nèi)容都是我干的蜓氨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼队伟,長吁一口氣:“原來是場噩夢啊……” “哼穴吹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起嗜侮,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤港令,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后锈颗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體顷霹,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年宜猜,在試婚紗的時候發(fā)現(xiàn)自己被綠了泼返。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡姨拥,死狀恐怖绅喉,靈堂內(nèi)的尸體忽然破棺而出渠鸽,到底是詐尸還是另有隱情,我是刑警寧澤柴罐,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布徽缚,位于F島的核電站,受9級特大地震影響革屠,放射性物質(zhì)發(fā)生泄漏凿试。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一似芝、第九天 我趴在偏房一處隱蔽的房頂上張望那婉。 院中可真熱鬧,春花似錦党瓮、人聲如沸详炬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呛谜。三九已至,卻和暖如春枪萄,著一層夾襖步出監(jiān)牢的瞬間隐岛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工瓷翻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留聚凹,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓逻悠,卻偏偏與公主長得像元践,于是被迫代替她去往敵國和親韭脊。 傳聞我的和親對象是個殘疾皇子童谒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評論 2 345