CartographicBoundaryRetrofitRetriever

Fetches cartographic boundary information using the Nominatim API. This class retrieves boundaries based on provided administrative levels (e.g., city, state, country) and corresponding names. It operates asynchronously and emits successfully retrieved CartographicBoundary objects through a returned Flow of CartographicBoundary.

This class implements rate limiting with a one-second delay between Nominatim API requests to comply with usage guidelines. It also uses a mutex for thread-safe access during API calls.

Note: This class assumes the provided administrativeUnitLevelAndAdministrativeUnitNameList contains valid combinations of AdministrativeLevel and AdministrativeUnitName objects.

Constructors

Link copied to clipboard
@Inject
constructor(nominatimAPI: NominatimAPI)

Functions

Link copied to clipboard
open override fun retrieve(administrativeUnitLevelAndAdministrativeUnitNameList: List<Pair<AdministrativeLevel, AdministrativeUnitName>>): Flow<CartographicBoundary>

Retrieves a Flow of CartographicBoundary objects for a given list of AdministrativeLevel and AdministrativeUnitName pairs. This method is designed to retrieve boundaries for multiple locations at once.