| <!DOCTYPE html> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| |
| |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> |
| <script src="lib/esl.js"></script> |
| <script src="lib/config.js"></script> |
| <script src="lib/jquery.min.js"></script> |
| <script src="lib/facePrint.js"></script> |
| <script src="lib/testHelper.js"></script> |
| <!-- <script src="ut/lib/canteen.js"></script> --> |
| <link rel="stylesheet" href="lib/reset.css" /> |
| </head> |
| <body> |
| <style> |
| </style> |
| |
| |
| |
| <div id="main_simple_geo_svg_coord"></div> |
| <div id="main_simple_geo_svg_viewBox_svgWH"></div> |
| <div id="main_geo_json_focus_blur"></div> |
| <div id="main_geo_svg_emphasis_select"></div> |
| <div id="main_pure_geo_svg"></div> |
| <div id="main_pure_map_svg"></div> |
| <div id="main_map_geo_svg"></div> |
| <div id="main_geo_svg_click_finder"></div> |
| <div id="main_geo_svg_multiple_geo"></div> |
| |
| |
| |
| |
| |
| <script> |
| function listenAndPrintEvent(chart) { |
| if (!chart) { |
| return; |
| } |
| const out = { |
| }; |
| chart.on('geoselectchanged', function (params) { |
| out.geoselectechanged = { |
| allSelected: params.allSelected |
| }; |
| console.log('geoselectechanged', params); |
| chart.__testHelper.updateInfo(out, 'event'); |
| }); |
| chart.on('selectchanged', function (params) { |
| out.selectechanged = { |
| selected: params.selected |
| }; |
| console.log('selectechanged', params); |
| chart.__testHelper.updateInfo(out, 'event'); |
| }); |
| chart.on('click', function (params) { |
| out.click = { |
| componentIndex: params.componentIndex, |
| componentType: params.componentType, |
| geoIndex: params.geoIndex, |
| name: params.name |
| }; |
| console.log('click', params); |
| chart.__testHelper.updateInfo(out, 'event'); |
| }); |
| } |
| </script> |
| |
| |
| |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'/*, 'map/js/china' */], function (echarts) { |
| const svg = [ |
| '<?xml version="1.0" encoding="utf-8"?>', |
| '<svg xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" fill-rule="evenodd" xml:space="preserve">', |
| '<path name="left_rect" d="M 0,0 L 0,100 100,100 100,0 Z" fill="#765" stroke="rgb(56,93,138)" stroke-width="0" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '<path name="right_rect" d="M 150,0 L 150,100 250,100 250,0 Z" fill="#567" stroke="rgb(56,93,138)" stroke-width="0" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '</svg>' |
| ].join('') |
| |
| echarts.registerMap('testGeoSVG_coord', { svg: svg }); |
| |
| option = { |
| animation: false, |
| tooltip: { |
| }, |
| geo: { |
| map: 'testGeoSVG_coord', |
| roam: true, |
| top: 0, |
| bottom: 0, |
| left: 0, |
| right: 0, |
| }, |
| series: [{ |
| type: 'scatter', |
| geoIndex: 0, |
| coordinateSystem: 'geo', |
| symbolSize: 30, |
| data: [{ |
| value: [200, 50], |
| itemStyle: { |
| color: 'blue' |
| } |
| }] |
| }] |
| }; |
| |
| var chart = testHelper.create(echarts, 'main_simple_geo_svg_coord', { |
| title: [ |
| 'A **blue circle** should be in the center of the right rect.', |
| '**Click** inside the rect or outside the rect.', |
| 'Check SVG coord displayed (via convertFromPixel).', |
| '(The left rect is 100*100 and left-top corner is (0,0))', |
| '**Click btn1**, check Pixel.point[1] should be around 100', |
| '**Click btn2**, check Pixel.point[1] should be around 200' |
| ], |
| option: option, |
| infoKey: 'SVG coord', |
| info: {}, |
| height: 200, |
| buttons: [{ |
| text: 'converToPixel({ geoIndex: 0 }, "left_rect")', |
| onclick: function () { |
| var point = chart.convertToPixel({ geoIndex: 0 }, 'left_rect'); |
| console.log(point); |
| chart.__testHelper.updateInfo( |
| { point: point }, |
| 'Pixel' |
| ); |
| } |
| }, { |
| text: 'convertToPixel({ geoIndex: 0 }, [100, 100])', |
| onclick: function () { |
| var point = chart.convertToPixel({ geoIndex: 0 }, [100, 100]); |
| console.log(point); |
| chart.__testHelper.updateInfo( |
| { point: point }, |
| 'Pixel' |
| ); |
| } |
| }] |
| }); |
| |
| if (chart) { |
| chart.getZr().on('click', function (event) { |
| var x = event.offsetX; |
| var y = event.offsetY; |
| console.log(x, y); |
| var svgCoord = chart.convertFromPixel({ geoIndex: 0 }, [x, y]); |
| console.log(svgCoord); |
| chart.__testHelper.updateInfo( |
| { x: svgCoord[0], y: svgCoord[1] }, |
| 'SVG coord' |
| ); |
| }); |
| } |
| |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'], function (echarts) { |
| const xmlHeader = '<?xml version="1.0" encoding="utf-8"?>'; |
| const svgTagCommonAttr = ' xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" fill-rule="evenodd" xml:space="preserve" '; |
| |
| // Both svgWdith svgHeight viewBox |
| const svg1 = [ |
| xmlHeader, |
| '<svg ' + svgTagCommonAttr, |
| 'viewBox="99500 99500 1000 1000"', |
| 'width="5px" height="5px"', |
| '>', |
| '<circle cx="100000" cy="100000" r="500" fill="blue" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '</svg>' |
| ].join(' '); |
| // Both svgWdith svgHeight viewBox and clip |
| const svg2 = [ |
| xmlHeader, |
| '<svg ' + svgTagCommonAttr, |
| 'viewBox="99500 99500 500 500"', |
| 'width="5px" height="5px"', |
| '>', |
| '<circle cx="100000" cy="100000" r="500" fill="blue" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '</svg>' |
| ].join(' '); |
| // Only svgWdith svgHeight |
| const svg3 = [ |
| xmlHeader, |
| '<svg ' + svgTagCommonAttr, |
| 'width="100000" height="100000"', |
| '>', |
| '<circle cx="100000" cy="100000" r="100000" fill="blue" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '</svg>' |
| ].join(' '); |
| // Only viewBox |
| const svg4 = [ |
| xmlHeader, |
| '<svg ' + svgTagCommonAttr, |
| 'viewBox="99500 99500 500 500"', |
| '>', |
| '<circle cx="100000" cy="100000" r="500" fill="blue" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '</svg>' |
| ].join(' '); |
| // Neither viewBox and svgWidth svgHeight |
| const svg5 = [ |
| xmlHeader, |
| '<svg ' + svgTagCommonAttr, |
| '>', |
| '<circle cx="100000" cy="100000" r="500" fill="blue" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '</svg>' |
| ].join(' '); |
| // Both viewBox but only svgHeight no svgWidth |
| const svg6 = [ |
| xmlHeader, |
| '<svg ' + svgTagCommonAttr, |
| 'viewBox="99500 99500 1000 1000"', |
| 'height="500"', |
| '>', |
| '<circle cx="100000" cy="100000" r="500" fill="blue" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '</svg>' |
| ].join(' '); |
| |
| echarts.registerMap('testGeoSVG_viewBox_svgWH_1', { svg: svg1 }); |
| echarts.registerMap('testGeoSVG_viewBox_svgWH_2', { svg: svg2 }); |
| echarts.registerMap('testGeoSVG_viewBox_svgWH_3', { svg: svg3 }); |
| echarts.registerMap('testGeoSVG_viewBox_svgWH_4', { svg: svg4 }); |
| echarts.registerMap('testGeoSVG_viewBox_svgWH_5', { svg: svg5 }); |
| echarts.registerMap('testGeoSVG_viewBox_svgWH_6', { svg: svg6 }); |
| |
| const RECT_SIZE = 50; |
| const Y_TOP = 10; |
| const X_LEFT = 10; |
| const GAP = 20; |
| |
| var _itemIndex = 0; |
| var _graphicOptionArr = []; |
| var _geoOptionArr = []; |
| |
| function makeItem(text, mapType) { |
| var x = X_LEFT + (RECT_SIZE + GAP) * _itemIndex++; |
| _graphicOptionArr.push({ |
| type: 'rect', |
| silent: true, |
| shape: { x: x, y: Y_TOP, width: RECT_SIZE, height: RECT_SIZE }, |
| style: { stroke: 'red', lineWidth: 1, fill: null } |
| }, { |
| type: 'text', |
| silent: true, |
| style: { |
| text: text, x: x + RECT_SIZE / 2, y: Y_TOP + RECT_SIZE + GAP, |
| fill: '#000', textAlign: 'center', textVerticalAlign: 'middle' |
| } |
| }); |
| _geoOptionArr.push({ |
| map: mapType, |
| left: x, top: Y_TOP, width: RECT_SIZE, height: RECT_SIZE, |
| itemStyle: { color: 'blue' } |
| }); |
| } |
| |
| makeItem('circle', 'testGeoSVG_viewBox_svgWH_1'); |
| makeItem('1/4 sector', 'testGeoSVG_viewBox_svgWH_2'); |
| makeItem('1/4 sector', 'testGeoSVG_viewBox_svgWH_3'); |
| makeItem('1/4 sector', 'testGeoSVG_viewBox_svgWH_4'); |
| makeItem('circle', 'testGeoSVG_viewBox_svgWH_5'); |
| makeItem('thin ellipse', 'testGeoSVG_viewBox_svgWH_6'); |
| |
| option = { |
| animation: false, |
| tooltip: { |
| }, |
| graphic: _graphicOptionArr, |
| geo: _geoOptionArr |
| }; |
| |
| var chart = testHelper.create(echarts, 'main_simple_geo_svg_viewBox_svgWH', { |
| title: [ |
| 'viewBox test:', |
| 'Check each shape should be inside each red rect.', |
| 'Check each shape be correspondence with the text.', |
| ], |
| option: option, |
| height: 100 |
| }); |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'/*, 'map/js/china' */], function (echarts) { |
| const testGeoJson1 = { |
| 'type': 'FeatureCollection', |
| 'features': [ |
| { |
| 'type': 'Feature', |
| 'geometry': { |
| 'type': 'Polygon', |
| 'coordinates': [ |
| [[2000, 2000], [5000, 2000], [5000, 5000], [2000, 5000]] |
| ] |
| }, |
| 'properties': { |
| 'name': 'Afghanistan' |
| } |
| }, |
| { |
| 'type': 'Feature', |
| 'geometry': { |
| 'type': 'Polygon', |
| 'coordinates': [ |
| [[6000, 2300], [9300, 2300], [9000, 5000]] |
| ] |
| }, |
| 'properties': { |
| 'name': 'BBB' |
| } |
| } |
| ] |
| }; |
| |
| echarts.registerMap('testGeoJson2', testGeoJson1); |
| |
| option = { |
| tooltip: { |
| }, |
| geo: { |
| map: 'testGeoJson2', |
| roam: true, |
| selectedMode: 'single', |
| label: { |
| show: true |
| }, |
| emphasis: { |
| focus: 'self' |
| }, |
| // height: '100%', |
| // center |
| // layoutCenter: ['30%', 40], |
| // layoutSize: 40, |
| // boundingCoords |
| zoom: 1, |
| aspectScale: 1 |
| } |
| }; |
| |
| var chart = testHelper.create(echarts, 'main_geo_json_focus_blur', { |
| title: [ |
| 'check geoJSON focus-blur', |
| '**Click** them, check click info' |
| ], |
| option: option, |
| info: {}, |
| infoKey: 'event', |
| height: 200 |
| }); |
| |
| listenAndPrintEvent(chart); |
| |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'/*, 'map/js/china' */], function (echarts) { |
| const svg = [ |
| '<?xml version="1.0" encoding="utf-8"?>', |
| '<svg xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" fill-rule="evenodd" xml:space="preserve">', |
| '<path name="a" d="M 0,0 L 0,100 100,100 100,0 Z" transform="rotate(45)" fill="rgb(16,193,138)" stroke="green" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '<path name="a" d="M 110,0 L 110,100 210,100 210,0 Z" fill="rgb(16,193,138)" stroke="green" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '<g name="b">', |
| '<path d="M 0,110 L 0,210 100,110 Z" fill="rgb(16,193,138)" stroke="green" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '<path d="M 110,110 L 110,210 210,110 Z" fill="rgb(16,193,138)" stroke="green" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '</g>', |
| '<radialGradient id="XMLID_1_" cx="0" cy="220" r="59.4363" gradientUnits="userSpaceOnUse">', |
| '<stop offset="0" style="stop-color:#E6E6E6"/>', |
| '<stop offset="1" style="stop-color:#4D4D4D"/>', |
| '</radialGradient>', |
| '<path name="c" d="M 0,220 L 0,320 100,220 Z" fill="url(#XMLID_1_)" stroke="green" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '<radialGradient id="XMLID_2_" cx="110" cy="220" r="59.4363" gradientUnits="userSpaceOnUse">', |
| '<stop offset="0" style="stop-color:#E6E6E6"/>', |
| '<stop offset="1" style="stop-color:#4D4D4D"/>', |
| '</radialGradient>', |
| '<path name="c" d="M 110,220 L 110,320 210,220 Z" fill="url(#XMLID_2_)" stroke="green" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '</svg>' |
| ].join('') |
| |
| echarts.registerMap('testGeoSVG_select_hover', { svg: svg }); |
| |
| option = { |
| // tooltip: { |
| // }, |
| geo: { |
| map: 'testGeoSVG_select_hover', |
| roam: true, |
| selectedMode: 'single', |
| // height: '100%', |
| // center |
| // layoutCenter: ['30%', 40], |
| // layoutSize: 40, |
| // boundingCoords |
| zoom: 1, |
| aspectScale: 1, |
| label: { |
| show: true |
| }, |
| emphasis: { |
| focus: 'self', |
| label: { |
| show: true, |
| fontSize: 100 |
| } |
| }, |
| select: { |
| itemStyle: { |
| color: 'red' |
| } |
| } |
| } |
| }; |
| |
| var chart = testHelper.create(echarts, 'main_geo_svg_emphasis_select', { |
| title: [ |
| 'click buttons', |
| 'hover check', |
| 'check focus-blur', |
| 'check label no scale/rotate' |
| ], |
| option: option, |
| info: {}, |
| infoKey: 'event', |
| height: 200, |
| button: [{ |
| text: 'highlight a', |
| onclick: function () { |
| chart.dispatchAction({ type: 'highlight', geoIndex: 0, name: 'a' }); |
| } |
| }, { |
| text: 'downplay a', |
| onclick: function () { |
| chart.dispatchAction({ type: 'downplay', geoIndex: 0, name: 'a' }); |
| } |
| }, { |
| text: 'select a', |
| onclick: function () { |
| chart.dispatchAction({ type: 'geoSelect', geoIndex: 0, name: 'a' }); |
| } |
| }, { |
| text: 'unselect a', |
| onclick: function () { |
| chart.dispatchAction({ type: 'geoUnSelect', geoIndex: 0, name: 'a' }); |
| } |
| }, { |
| text: 'highlight b', |
| onclick: function () { |
| chart.dispatchAction({ type: 'highlight', geoIndex: 0, name: 'b' }); |
| } |
| }, { |
| text: 'downplay b', |
| onclick: function () { |
| chart.dispatchAction({ type: 'downplay', geoIndex: 0, name: 'b' }); |
| } |
| }, { |
| text: 'select b', |
| onclick: function () { |
| chart.dispatchAction({ type: 'geoSelect', geoIndex: 0, name: 'b' }); |
| } |
| }, { |
| text: 'unselect b', |
| onclick: function () { |
| chart.dispatchAction({ type: 'geoUnSelect', geoIndex: 0, name: 'b' }); |
| } |
| }] |
| }); |
| |
| listenAndPrintEvent(chart); |
| |
| if (chart) { |
| chart.on('highlight', function () { |
| }); |
| } |
| |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'/*, 'map/js/china' */], function (echarts) { |
| var option; |
| $.ajax({ |
| url: 'data/svg/flight-seats.svg', |
| dataType: 'text' |
| }).done(function (svg) { |
| |
| echarts.registerMap('flight-seats', { |
| svg: svg |
| }); |
| |
| option = { |
| tooltip: { |
| }, |
| geo: { |
| map: 'flight-seats', |
| roam: true, |
| selectedMode: 'multiple', |
| tooltip: { |
| show: true |
| }, |
| emphasis: { |
| itemStyle: { |
| color: null, |
| borderColor: '#780705', |
| borderWidth: 3 |
| }, |
| label: { |
| textBorderColor: '#fff', |
| textBorderWidth: 2 |
| } |
| }, |
| select: { |
| itemStyle: { |
| color: '#b50205' |
| }, |
| label: { |
| show: false, |
| textBorderColor: '#fff', |
| textBorderWidth: 2 |
| } |
| } |
| } |
| }; |
| |
| var chart = testHelper.create(echarts, 'main_pure_geo_svg', { |
| title: [ |
| 'pure geo component with svg resource', |
| 'click seat: check **allSelected** correct.', |
| 'hover seat: check **tooltip** and **label** correct.' |
| ], |
| option: option, |
| info: {}, |
| infoKey: 'event', |
| height: 300 |
| }); |
| |
| listenAndPrintEvent(chart); |
| |
| }); |
| |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'/*, 'map/js/china' */], function (echarts) { |
| var option; |
| $.ajax({ |
| url: 'data/svg/seatmap-example.svg', |
| dataType: 'text' |
| }).done(function (svg) { |
| |
| echarts.registerMap('seatmap', { |
| svg: svg |
| }); |
| |
| option = { |
| tooltip: { |
| }, |
| series: { |
| type: 'map', |
| map: 'seatmap', |
| roam: true, |
| selectedMode: 'multiple', |
| // height: 100, |
| // zoom: 1.5 |
| emphasis: { |
| label: { |
| textBorderColor: '#fff', |
| textBorderWidth: 2 |
| } |
| }, |
| select: { |
| itemStyle: { |
| color: '#b50205' |
| }, |
| label: { |
| show: false, |
| textBorderColor: '#fff', |
| textBorderWidth: 2 |
| } |
| } |
| } |
| }; |
| |
| var chart = testHelper.create(echarts, 'main_pure_map_svg', { |
| title: [ |
| 'pure map series with svg resource', |
| 'Hover seat: check **tooltip** correct.' |
| ], |
| option: option, |
| info: {}, |
| infoKey: 'event', |
| height: 300 |
| // buttons: [{text: 'btn-txt', onclick: function () {}}], |
| // recordCanvas: true, |
| }); |
| |
| listenAndPrintEvent(chart); |
| |
| }); |
| |
| }); |
| </script> |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'/*, 'map/js/china' */], function (echarts) { |
| var option; |
| $.ajax({ |
| url: 'data/svg/seatmap-example.svg', |
| dataType: 'text' |
| }).done(function (svg) { |
| |
| echarts.registerMap('seatmap', { |
| svg: svg |
| }); |
| |
| option = { |
| tooltip: { |
| }, |
| geo: { |
| map: 'seatmap', |
| roam: true, |
| selectedMode: 'multiple', |
| // height: 100, |
| // zoom: 1.5 |
| tooltip: { |
| show: true |
| }, |
| emphasis: { |
| label: { |
| textBorderColor: '#fff', |
| textBorderWidth: 2 |
| } |
| }, |
| select: { |
| itemStyle: { |
| color: '#b50205' |
| }, |
| label: { |
| show: false, |
| textBorderColor: '#fff', |
| textBorderWidth: 2 |
| } |
| } |
| }, |
| series: { |
| type: 'map', |
| selectedMode: 'multiple', |
| coordinateSystem: 'geo', |
| geoIndex: 0 |
| } |
| }; |
| |
| var chart = testHelper.create(echarts, 'main_map_geo_svg', { |
| title: [ |
| 'map series on declared geo with svg resource', |
| 'Hover seat: check **tooltip** correct.' |
| ], |
| option: option, |
| info: {}, |
| infoKey: 'event', |
| height: 300 |
| // buttons: [{text: 'btn-txt', onclick: function () {}}], |
| // recordCanvas: true, |
| }); |
| |
| listenAndPrintEvent(chart); |
| |
| }); |
| |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'/*, 'map/js/china' */], function (echarts) { |
| const svg = [ |
| '<?xml version="1.0" encoding="utf-8"?>', |
| '<svg xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" fill-rule="evenodd" xml:space="preserve">', |
| '<path name="a" d="M 0,0 L 0,100 100,100 100,0 Z" fill="green" stroke="rgb(56,93,138)" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '<path name="b" d="M 150,0 L 150,100 250,100 250,0 Z" fill="blue" stroke="rgb(56,93,138)" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '</svg>' |
| ].join('') |
| |
| echarts.registerMap('testGeoSVGclick', { svg: svg }); |
| |
| var option = { |
| geo: { |
| map: 'testGeoSVGclick', |
| selectedMode: 'single', |
| zoom: 1, |
| aspectScale: 1, |
| label: { |
| show: true |
| } |
| } |
| }; |
| |
| var chart = testHelper.create(echarts, 'main_geo_svg_click_finder', { |
| title: [ |
| 'Click green rect, should display click event.', |
| 'Click blue rect, should display nothing.' |
| ], |
| option: option, |
| info: {}, |
| infoKey: 'click event', |
| height: 200 |
| }); |
| |
| if (chart) { |
| chart.on('click', { geoIndex: 0, name: 'a' }, function (params) { |
| console.log(params); |
| chart.__testHelper.updateInfo({ |
| componentIndex: params.componentIndex, |
| componentType: params.componentType, |
| geoIndex: params.geoIndex, |
| name: params.name |
| }, 'click event'); |
| }); |
| } |
| |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'/*, 'map/js/china' */], function (echarts) { |
| const svg = [ |
| '<?xml version="1.0" encoding="utf-8"?>', |
| '<svg xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" fill-rule="evenodd" xml:space="preserve">', |
| '<path name="a" d="M 0,0 L 0,100 100,100 100,0 Z" fill="green" stroke="rgb(56,93,138)" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"/>', |
| '</svg>' |
| ].join('') |
| |
| echarts.registerMap('testGeoSVG_for_multiple_test', { svg: svg }); |
| |
| var option = { |
| geo: [{ |
| id: 'g1', |
| map: 'testGeoSVG_for_multiple_test', |
| selectedMode: 'single', |
| layoutCenter: ['25%', '50%'], |
| layoutSize: 20, |
| select: { |
| itemStyle: { color: 'red' } |
| } |
| }, { |
| id: 'g2', |
| map: 'testGeoSVG_for_multiple_test', |
| selectedMode: 'single', |
| layoutCenter: ['50%', '50%'], |
| layoutSize: 20, |
| select: { |
| itemStyle: { color: 'red' } |
| }, |
| }, { |
| id: 'g3', |
| map: 'testGeoSVG_for_multiple_test', |
| selectedMode: 'single', |
| layoutCenter: ['75%', '50%'], |
| layoutSize: 20, |
| select: { |
| itemStyle: { color: 'red' } |
| }, |
| }] |
| }; |
| |
| var chart = testHelper.create(echarts, 'main_geo_svg_multiple_geo', { |
| title: [ |
| 'Select the three rect to red.', |
| 'click btn. Check all of the existing rect removed,', |
| 'and only one new green rect generated.' |
| ], |
| option: option, |
| height: 200, |
| buttons: [{ |
| text: 'change geo (replaceMerge)', |
| onclick: function (params) { |
| chart.setOption({ |
| geo: { |
| id: 'g4', |
| map: 'testGeoSVG_for_multiple_test', |
| selectedMode: 'single', |
| layoutCenter: ['40%', '50%'], |
| layoutSize: 40, |
| select: { |
| itemStyle: { color: 'red' } |
| } |
| } |
| }, { replaceMerge: 'geo' }); |
| } |
| }] |
| }); |
| |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| </body> |
| </html> |
| |