|
| 1 | +import { MapsComponent, LayersDirective, LayerDirective,Inject, DataLabel, ILabelRenderingEventArgs} from '@syncfusion/ej2-react-maps'; |
| 2 | +import { world_map } from './world_map' |
| 3 | + |
| 4 | +import './App.css'; |
| 5 | +let uncountries: object[] = [ |
| 6 | + { Name: "United States", SeverityLevel: "High"}, |
| 7 | + { Name: "India", SeverityLevel: "High" }, |
| 8 | + { Name: "Brazil", SeverityLevel: "High"}, |
| 9 | + { Name: "United Kingdom", SeverityLevel: "High"}, |
| 10 | + { Name: "Russia", SeverityLevel: "High"}, |
| 11 | + { Name: "Turkey", SeverityLevel: "High"}, |
| 12 | + { Name: "France", SeverityLevel: "High"}, |
| 13 | + { Name: "Iran", SeverityLevel: "Moderate"}, |
| 14 | + { Name: "Spain", SeverityLevel: "Moderate"}, |
| 15 | + { Name: "Italy", SeverityLevel: "Moderate"}, |
| 16 | + { Name: "Argentina", SeverityLevel: "Moderate"}, |
| 17 | + { Name: "Colombia", SeverityLevel: "Moderate"}, |
| 18 | + { Name: "Indonesia", SeverityLevel: "Low"}, |
| 19 | + { Name: "Poland", SeverityLevel: "Low"}, |
| 20 | + { Name: "Mexico", SeverityLevel: "Low"}, |
| 21 | + { Name: "Ukraine", SeverityLevel: "Low"}, |
| 22 | + { Name: "South Africa", SeverityLevel: "Low"}, |
| 23 | + { Name: "Netherlands", SeverityLevel: "Low"} |
| 24 | +]; |
| 25 | + |
| 26 | +function App() { |
| 27 | + const dataLabel = (args: ILabelRenderingEventArgs): void => { |
| 28 | + if(args.maps != null) { |
| 29 | + let dataSource: any = args.maps.layers[0].dataSource; |
| 30 | + for (var i = 0; i < dataSource.length; i++) { |
| 31 | + if (dataSource[i]['Name'] === args.text && dataSource[i]['SeverityLevel'] === "High") { |
| 32 | + args.template = '<div> ${SeverityLevel} </div>'; |
| 33 | + break; |
| 34 | + } else { |
| 35 | + args.template = '<div></div>'; |
| 36 | + } |
| 37 | + } |
| 38 | + } |
| 39 | + }; |
| 40 | + return ( |
| 41 | + <div className="App"> |
| 42 | + <MapsComponent titleSettings={ { text: 'Covid-19 Affected Countries' } } dataLabelRendering={dataLabel}> |
| 43 | + <Inject services={[DataLabel]} /> |
| 44 | + <LayersDirective> |
| 45 | + <LayerDirective shapeData={world_map} dataSource={uncountries} |
| 46 | + shapeDataPath='Name' shapePropertyPath='name' |
| 47 | + dataLabelSettings={ |
| 48 | + {visible: true, |
| 49 | + //smartLabelMode: 'Hide', |
| 50 | + //intersectionAction: 'Trim', |
| 51 | + // textStyle: { |
| 52 | + // color:'blue', |
| 53 | + // size: '10px', |
| 54 | + // fontStyle: 'Sans-serif', |
| 55 | + // fontWeight: 'bold' |
| 56 | + // } |
| 57 | + |
| 58 | + |
| 59 | + }} |
| 60 | + shapeSettings={ { |
| 61 | + colorValuePath: 'SeverityLevel', |
| 62 | + colorMapping: [ |
| 63 | + { value: 'High', color: '#A69d70'}, |
| 64 | + { value: 'Moderate', color: '#A4D6AD'}, |
| 65 | + { value: 'Low', color: '#DEEBAE'}, |
| 66 | + ], |
| 67 | + fill: '#E5E5E5' |
| 68 | + } } |
| 69 | + > |
| 70 | + </LayerDirective> |
| 71 | + </LayersDirective> |
| 72 | + </MapsComponent> |
| 73 | + </div> |
| 74 | + ); |
| 75 | +} |
| 76 | + |
| 77 | +export default App; |
0 commit comments