fromParts static method

Address? fromParts({
  1. String? formatted,
  2. String? name,
  3. String? street,
  4. String? houseNumber,
  5. String? subLocality,
  6. String? locality,
  7. String? subAdministrativeArea,
  8. String? administrativeArea,
  9. String? postalCode,
  10. String? country,
  11. String? countryCode,
  12. Map<String, Object?> raw = const {},
})

Builds an address from raw parts: blank strings become null, and formatted is derived from the parts when the provider has no line of its own. Returns null when no part has any text, which a geocoder should report as noResult.

Implementation

static Address? fromParts({
  String? formatted,
  String? name,
  String? street,
  String? houseNumber,
  String? subLocality,
  String? locality,
  String? subAdministrativeArea,
  String? administrativeArea,
  String? postalCode,
  String? country,
  String? countryCode,
  Map<String, Object?> raw = const {},
}) {
  final parts = _Parts(
    name: _clean(name),
    street: _clean(street),
    houseNumber: _clean(houseNumber),
    subLocality: _clean(subLocality),
    locality: _clean(locality),
    subAdministrativeArea: _clean(subAdministrativeArea),
    administrativeArea: _clean(administrativeArea),
    postalCode: _clean(postalCode),
    country: _clean(country),
  );
  final line = _clean(formatted) ?? parts.format();
  if (line == null) return null;
  return Address(
    formatted: line,
    name: parts.name,
    street: parts.street,
    houseNumber: parts.houseNumber,
    subLocality: parts.subLocality,
    locality: parts.locality,
    subAdministrativeArea: parts.subAdministrativeArea,
    administrativeArea: parts.administrativeArea,
    postalCode: parts.postalCode,
    country: parts.country,
    countryCode: _clean(countryCode)?.toUpperCase(),
    raw: raw,
  );
}