LocationResult.fromGooglePlace constructor
Create LocationResult from Google Places API response
Implementation
factory LocationResult.fromGooglePlace(Map<String, dynamic> place, double lat, double lng) {
String address = '';
String? city;
String? state;
String? country;
String? postalCode;
// Extract formatted address
if (place.containsKey('formatted_address')) {
address = place['formatted_address'] as String;
}
// Parse address components
if (place.containsKey('address_components')) {
final components = place['address_components'] as List<dynamic>;
for (final component in components) {
final types = List<String>.from(component['types'] as List);
final longName = component['long_name'] as String;
if (types.contains('locality')) {
city = longName;
} else if (types.contains('administrative_area_level_1')) {
state = longName;
} else if (types.contains('country')) {
country = longName;
} else if (types.contains('postal_code')) {
postalCode = longName;
}
}
}
return LocationResult(
latitude: lat,
longitude: lng,
address: address,
city: city,
state: state,
country: country,
postalCode: postalCode,
addressSource: AddressSource.googlePlaces,
);
}