GeocoderFeature.fromJson constructor

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

Implementation

GeocoderFeature.fromJson(Map<String, dynamic> json) {
  id = json['id'] as String?;
  type = json['type'] as String?;
  relevance = (json['relevance'] as num?)?.toDouble();
  address = json['address'] as String?;
  text = json['text'] as String?;
  placeName = json['place_name'] as String?;
  matchingText = json['matching_text'] as String?;
  matchingPlaceName = json['matching_place_name'] as String?;
  language = json['language'] as String?;

  if (json.containsKey('geometry') && json['geometry'] != null) {
    geometry = GeocoderGeometry.fromJson(
      json['geometry'] as Map<String, dynamic>,
    );
  }
  if (json.containsKey('routable_points') &&
      json['routable_points'] != null) {
    routablePoints = GeocoderRoutablePoints.fromJson(
      json['routable_points'] as Map<String, dynamic>,
    );
  }
  if (json.containsKey('bbox') && json['bbox'] != null) {
    bbox = GeocoderBbox.fromJson(
      json['bbox'] as List<dynamic>,
    );
  }
  if (json.containsKey('center') && json['center'] != null) {
    center = List<double>.from(
      json['center'] as List<dynamic>,
    );
  }

  if (json.containsKey('properties') && json['properties'] != null) {
    properties = GeocoderFeatureProperty.fromJson(
      json['properties'] as Map<String, dynamic>,
    );
  }

  if (json.containsKey('context') && json['context'] != null) {
    context = List<GeocoderContext>.from(
      (json['context'] as List<dynamic>).map(
        (ctx) => GeocoderContext.fromJson(
          ctx as Map<String, dynamic>,
        ),
      ),
    );
  }

  if (json.containsKey('place_type') && json['place_type'] != null) {
    placeType = List<GeocoderPlaceType>.from(
      (json['place_type'] as List<dynamic>).map(
        (type) {
          switch (type as String) {
            case 'country':
              return GeocoderPlaceType.COUNTRY;
            case 'region':
              return GeocoderPlaceType.REGION;
            case 'postcode':
              return GeocoderPlaceType.POSTCODE;
            case 'district':
              return GeocoderPlaceType.DISTRICT;
            case 'place':
              return GeocoderPlaceType.PLACE;
            case 'locality':
              return GeocoderPlaceType.LOCALITY;
            case 'neighborhood':
              return GeocoderPlaceType.NEIGHBORHOOD;
            case 'address':
              return GeocoderPlaceType.ADDRESS;
            case 'poi':
              return GeocoderPlaceType.POI;
          }

          return GeocoderPlaceType.EMPTY;
        },
      ),
    );
  }
}