fromGooglePlaceDetails method

void fromGooglePlaceDetails(
  1. PlaceDetails details, {
  2. String? placeId,
})

Implementation

void fromGooglePlaceDetails(PlaceDetails details, {String? placeId}) {
  final location = this;
  final keyedDetails = details.addressComponents
      .expand(
          (comp) => comp.types.map((type) => MapEntry(type, comp.shortName)))
      .toList()
      .asMap()
      .map((_, entry) => entry);

  location.googlePlaceId = placeId;
  location.streetLineOne = Lists.compactEmpty([
    keyedDetails["street_number"],
    keyedDetails["route"],
  ]).join(" ");

  if (!location.streetLineOne!.contains(details.name)) {
    location.description = details.name;
  }

  location.region = keyedDetails["administrative_area_level_1"];
  location.locality = keyedDetails["locality"];
  location.countryCode = keyedDetails["country"];
  location.postalCode = keyedDetails["postal_code"];
}