0

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

前もって感謝します。

4

0 に答える 0