0

我需要通过 flutter_map 包添加多个多边形(需要离线)。.csv 文件连同每个多边形的命名一起提取坐标。在第一个多边形中,它被正确添加,但没有第二个它覆盖第一个多边形中第二个多边形的坐标,并且它得到两个带有坐标的多边形。遵循代码:

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;
  }

提前致谢。

4

0 回答 0