GeoJsonFeatureGeometry.fromJson constructor

GeoJsonFeatureGeometry.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory GeoJsonFeatureGeometry.fromJson(Map<String, dynamic> json) {
  final dynamic type = json['type'];
  final dynamic coordinates = json['coordinates'];
  if (coordinates is List<dynamic>) {
    final List<dynamic> dynamicList = coordinates;
    if (dynamicList.first is List<dynamic>) {
      final List<List<dynamic>> dynamicListList = dynamicList
          .map<List<dynamic>>((dynamic c) => c as List<dynamic>)
          .toList();
      // For Isochrone feature geometry, it has a list of list of coordinates.
      if (dynamicListList.first.first is List<dynamic>) {
        return _generateIsochroneGeometry(type, dynamicListList);
      }

      // For direction feature geometry, it has a list of coordinates.
      if (dynamicListList.first.first is num) {
        return _generateDirectionGeometry(type, dynamicListList);
      }
    }
  }

  // For Point feature geometry, it has a single coordinate.
  return _generatePointGeometry(type, coordinates);
}