position property
Positions the legend in the different directions.
Defaults to MapLegendPosition.top.
late List<DataModel> _data;
late MapShapeSource _mapSource;
@override
void initState() {
super.initState();
_data = <DataModel>[
DataModel('India', 280, "Low"),
DataModel('United States of America', 190, "High"),
DataModel('Pakistan', 37, "Low"),
];
_mapSource = MapShapeSource.asset(
"assets/world_map.json",
shapeDataField: "name",
dataCount: _data.length,
primaryValueMapper: (int index) {
return _data[index].country;
},
shapeColorValueMapper: (int index) {
return _data[index].storage;
},
shapeColorMappers: [
MapColorMapper(value: "Low", color: Colors.red),
MapColorMapper(value: "High", color: Colors.green)
],
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Bar legend'),
),
body: Center(
child: SfMaps(
layers: [
MapShapeLayer(
source: _mapSource,
legend: MapLegend.bar(
MapElement.shape,
position: MapLegendPosition.right,
),
)
],
),
),
);
}
class DataModel {
const DataModel(this.country, this.count, this.storage);
final String country;
final double count;
final String storage;
}
See also:
- offset, to place the legend in custom position.
Implementation
final MapLegendPosition position;