toJson method

Map<String, dynamic> toJson()

Convertit cette géométrie en GeoJSON standard (Map<String, dynamic>)

Implementation

Map<String, dynamic> toJson() {
  final Map<String, dynamic> json = {'type': type};

  switch (type.toLowerCase()) {
    case 'point':
      if (points != null) {
        json['coordinates'] = points!.toJson();
      }
      break;

    case 'linestring':
      if (lines != null) {
        json['coordinates'] = lines!.toJson();
      }
      break;

    case 'multilinestring':
      if (multilines != null) {
        json['coordinates'] = multilines!.toJson();
      }
      break;

    case 'polygon':
      if (polygons != null && polygons!.isNotEmpty) {
        json['coordinates'] = polygons![0].toJson();
      }
      break;

    case 'multipolygon':
      if (polygons != null) {
        json['coordinates'] = GeomMultiPolygon(multiPolygons: polygons!).toJson();
      }
      break;

    case 'geometrycollection':
      final geometries = <Map<String, dynamic>>[];
      if (points != null) {
        geometries.add({'type': 'Point', 'coordinates': points!.toJson()});
      }
      if (lines != null) {
        geometries.add({'type': 'LineString', 'coordinates': lines!.toJson()});
      }
      if (multilines != null) {
        geometries.add({'type': 'MultiLineString', 'coordinates': multilines!.toJson()});
      }
      if (polygons != null) {
        for (final polygon in polygons!) {
          geometries.add({'type': 'Polygon', 'coordinates': polygon.toJson()});
        }
      }
      json['geometries'] = geometries;
      break;

    default:
      _debugDtoPrint('Cannot serialize type: $type');
      break;
  }

  return json;
}