convertGridToPolylines static method

Set<Polyline> convertGridToPolylines(
  1. Map<String, dynamic> gridData, {
  2. Color gridColor = Colors.blue,
  3. double opacity = 0.4,
  4. int lineWidth = 1,
})

Convert grid-section API response to polylines

Implementation

static Set<Polyline> convertGridToPolylines(
  Map<String, dynamic> gridData, {
  Color gridColor = Colors.blue,
  double opacity = 0.4,
  int lineWidth = 1,
}) {
  Set<Polyline> polylines = {};

  try {
    final lines = gridData['lines'] as List<dynamic>?;

    if (lines != null && lines.isNotEmpty) {
      for (int i = 0; i < lines.length; i++) {
        final line = lines[i] as Map<String, dynamic>;
        final start = line['start'] as Map<String, dynamic>;
        final end = line['end'] as Map<String, dynamic>;

        final startLat = (start['lat'] as num).toDouble();
        final startLng = (start['lng'] as num).toDouble();
        final endLat = (end['lat'] as num).toDouble();
        final endLng = (end['lng'] as num).toDouble();

        polylines.add(
          Polyline(
            polylineId: PolylineId('$gridIdPrefix$i'),
            width: lineWidth,
            color: gridColor.withOpacity(opacity),
            points: [
              LatLng(startLat, startLng),
              LatLng(endLat, endLng),
            ],
          ),
        );
      }
    }
  } catch (e) {
    debugPrint('Error converting grid to polylines: $e');
  }

  return polylines;
}