flutter_map パッケージで複数のポリゴンを追加する必要があります (オフラインにする必要があります)。座標は、各ポリゴンの名前とともに .csv ファイルによって抽出されます。最初のポリゴンでは正しく追加されますが、最初のポリゴンの座標として2番目に上書きされず、座標を持つ2つのポリゴンが取得されます。コードに従ってください:
carregarCsv() async {
polygonLatLng.clear();
final _rawData = await rootBundle.loadString("csv/csv_teste2_utm.csv");
List<List<dynamic>> _listData = CsvToListConverter().convert(_rawData);
data = _listData;
for (int i = 1; i < data.length; i++) {
x = data[i][0];
y = data[i][1];
parcela = data[i][3];
var parte = parcela.split('/');
var corp = parte.sublist(1).join(':').trim();
latlon =
UTM.fromUtm(easting: x, northing: y, zoneNumber: 23, zoneLetter: 'K');
latitude = latlon.lat;
longitude = latlon.lon;
pointString = ("$latitude" + "," + " $longitude").toString();
point = LatLng(latitude, longitude);
if (corp != ultimoCorp && ultimoCorp != null) {
ultimoCorp = corp;
polygons = await setPolygon(polygonLatLng);
//polygonCounter = polygonCounter + 1;
polygonLatLng.clear();
polygonLatLng.add(point);
} else {
polygonLatLng.add(point);
ultimoCorp = corp;
}
}
await setPolygon(polygonLatLng);
}
setPolygon(List<LatLng> polygonLatLng) {
polygons.add(Polygon(
disableHolesBorder: true,
isDotted: true,
points: polygonLatLng,
color: Colors.red,
borderColor: Colors.red,
borderStrokeWidth: 1,
));
return polygons;
}
前もって感謝します。