<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ZingSoft Demo</title> <script nonce="undefined" src="https://cdn.zingchart.com/zingchart.min.js"></script> <style></style> </head> <body> <div id='myChart'></div> <script> ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9", "b55b025e438fa8a98e32482b5f768ff5"]; // must load maps and first map we are going to render zingchart.loadModules('maps,maps-world-countries'); // initial config for first chart var myConfig = { shapes: [{ type: 'zingchart.maps', options: { name: 'world.countries', style: { //stlye all countries controls: { placement: 'bl' }, backgroundColor: '#cccccc', label: { visible: false }, hoverState: { alpha: .32, }, items: { //include specific shape regions with unique styles USA: { backgroundColor: '#0D47A1', cursor: 'pointer', label: { visible: true, fontColor: '#ffffff' }, tooltip: { text: 'Click on USA to drilldown into states' } }, BRA: { backgroundColor: '#4CAF50', cursor: 'pointer', label: { visible: true, fontColor: '#ffffff' }, tooltip: { text: 'Click on Brazil to drilldown into states' } }, IND: { backgroundColor: '#FF6F00', cursor: 'pointer', label: { visible: true, fontColor: '#ffffff' }, tooltip: { text: 'Click on India to drilldown into states' } } } } } }] }; zingchart.render({ id: 'myChart', data: myConfig, height: 400, width: '100%' }); //drilldown chart configuration var drilldownConfig = { shapes: [{ type: 'zingchart.maps', options: { name: '', style: { controls: { placement: 'bl' } } } }, { x: 100, y: 20, type: 'rectangle', height: 25, width: 155, backgroundColor: '#C4C4C4', padding: 5, cursor: 'hand', id: 'back_button', label: { text: 'Back To World Countries' }, hoverState: { borderWidth: 1, borderColor: '#000' } } ] }; // for maps that exist in our library. Pre-load them later on zingchart.loadModules('maps-usa, maps-bra, maps-ind'); zingchart.bind('myChart', 'shape_click', function(e) { var newMapId = String(e.shapeid).toLowerCase(); // if shape is our back button and not the map if (newMapId == 'back_button') { console.log('here') // since we are using setdata, reload will reload the original chartJSON zingchart.exec('myChart', 'reload'); return; } if (hasDrilldownData(newMapId)) { drilldownConfig.shapes[0].options.name = newMapId; zingchart.exec('myChart', 'setdata', { data: drilldownConfig }); } }); // used in the shape_click event to determine if we should drilldown function hasDrilldownData(newMapId) { var drillDownCountries = ['usa', 'bra', 'ind']; for (var i = 0; i < drillDownCountries.length; i++) { if (newMapId === drillDownCountries[i]) return true; } return false; } </script> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ZingSoft Demo</title> <script src="https://cdn.zingchart.com/zingchart.min.js"></script> </head> <body> <div id='myChart'></div> </body> </html>
// must load maps and first map we are going to render zingchart.loadModules('maps,maps-world-countries'); // initial config for first chart var myConfig = { shapes: [{ type: 'zingchart.maps', options: { name: 'world.countries', style: { //stlye all countries controls: { placement: 'bl' }, backgroundColor: '#cccccc', label: { visible: false }, hoverState: { alpha: .32, }, items: { //include specific shape regions with unique styles USA: { backgroundColor: '#0D47A1', cursor: 'pointer', label: { visible: true, fontColor: '#ffffff' }, tooltip: { text: 'Click on USA to drilldown into states' } }, BRA: { backgroundColor: '#4CAF50', cursor: 'pointer', label: { visible: true, fontColor: '#ffffff' }, tooltip: { text: 'Click on Brazil to drilldown into states' } }, IND: { backgroundColor: '#FF6F00', cursor: 'pointer', label: { visible: true, fontColor: '#ffffff' }, tooltip: { text: 'Click on India to drilldown into states' } } } } } }] }; zingchart.render({ id: 'myChart', data: myConfig, height: 400, width: '100%' }); //drilldown chart configuration var drilldownConfig = { shapes: [{ type: 'zingchart.maps', options: { name: '', style: { controls: { placement: 'bl' } } } }, { x: 100, y: 20, type: 'rectangle', height: 25, width: 155, backgroundColor: '#C4C4C4', padding: 5, cursor: 'hand', id: 'back_button', label: { text: 'Back To World Countries' }, hoverState: { borderWidth: 1, borderColor: '#000' } } ] }; // for maps that exist in our library. Pre-load them later on zingchart.loadModules('maps-usa, maps-bra, maps-ind'); zingchart.bind('myChart', 'shape_click', function(e) { var newMapId = String(e.shapeid).toLowerCase(); // if shape is our back button and not the map if (newMapId == 'back_button') { console.log('here') // since we are using setdata, reload will reload the original chartJSON zingchart.exec('myChart', 'reload'); return; } if (hasDrilldownData(newMapId)) { drilldownConfig.shapes[0].options.name = newMapId; zingchart.exec('myChart', 'setdata', { data: drilldownConfig }); } }); // used in the shape_click event to determine if we should drilldown function hasDrilldownData(newMapId) { var drillDownCountries = ['usa', 'bra', 'ind']; for (var i = 0; i < drillDownCountries.length; i++) { if (newMapId === drillDownCountries[i]) return true; } return false; }