fromMap static method

GeoGeometry fromMap(
  1. Map<String, dynamic> json
)

Implementation

static GeoGeometry fromMap(Map<String, dynamic> json) {
  var coords = json["coordinates"] as List;
  var color =
      Color((math.Random().nextDouble() * 0xFFFFFF).toInt()).withOpacity(1.0);

  if (json["type"] == "Polygon") {
    var points = coords.map((e) {
      return (e as List).map((e) => _latLng(e)).toList();
    }).toList();
    return GeoGeometry.polygon(
        points.expand((element) => element).toList(), color);
  } else if (json["type"] == "MultiPolygon") {
    List<List<List<LatLng>>> multiPoints = [];
    coords.asMap().forEach((l1Index, l1) {
      multiPoints.add([]);
      l1.asMap().forEach((l2Index, l2) {
        multiPoints[l1Index].add([]);
        l2.asMap().forEach((l3Index, l3) {
          multiPoints[l1Index][l2Index].add(_latLng(l3));
        });
      });
    });
    return GeoGeometry.multiPolygon(multiPoints, color);
  } else if (json["type"] == "LineString") {
    var points = coords.map((e) => _latLng(e)).toList();
    return GeoGeometry.linestring(points, color);
  } else {
    return GeoGeometry.point(_latLng(coords), color);
  }
}