from nominatim.api.results import DetailedResult, ReverseResult, SearchResults
-class NominatimAPIAsync:
+class NominatimAPIAsync: #pylint: disable=too-many-instance-attributes
""" The main frontend to the Nominatim database implements the
functions for lookup, forward and reverse geocoding using
asynchronous functions.
project_dir: Path to the
[project directory](../admin/Import.md#creating-the-project-directory)
of the local Nominatim installation.
- environ: Mapping of additional
- [configuration parameters](../customize/Settings.md).
- These will override default configuration and configuration
- from the project directory.
+ environ: Mapping of [configuration parameters](../customize/Settings.md).
+ When set, replaces any configuration via environment variables.
+ Settings in this mapping also have precedence over any
+ parameters found in the `.env` file of the project directory.
loop: The asyncio event loop that will be used when calling
functions. Only needed, when a custom event loop is used
and the Python version is 3.9 or earlier.
self.config = Configuration(project_dir, environ)
self.query_timeout = self.config.get_int('QUERY_TIMEOUT') \
if self.config.QUERY_TIMEOUT else None
+ self.reverse_restrict_to_country_area = self.config.get_bool('SEARCH_WITHIN_COUNTRIES')
self.server_version = 0
if sys.version_info >= (3, 10):
conn.set_query_timeout(self.query_timeout)
if details.keywords:
await make_query_analyzer(conn)
- geocoder = ReverseGeocoder(conn, details)
+ geocoder = ReverseGeocoder(conn, details,
+ self.reverse_restrict_to_country_area)
return await geocoder.lookup(coord)
project_dir: Path to the
[project directory](../admin/Import.md#creating-the-project-directory)
of the local Nominatim installation.
- environ: Mapping of additional
- [configuration parameters](../customize/Settings.md).
- These will override default configuration and configuration
- from the project directory.
+ environ: Mapping of [configuration parameters](../customize/Settings.md).
+ When set, replaces any configuration via environment variables.
+ Settings in this mapping also have precedence over any
+ parameters found in the `.env` file of the project directory.
"""
self._loop = asyncio.new_event_loop()
self._async_api = NominatimAPIAsync(project_dir, environ, loop=self._loop)
or `None` if the place could not be found in the database.
Parameters:
- place: Description of the place to look up. See PlaceRef below
+ place: Description of the place to look up. See
+ [Place identification](Input-Parameter-Types.md#place-identification)
for the various ways to reference a place.
Other parameters:
Each result is a dataclass with the fields detailed below.
Parameters:
- places: List of descriptions of the place to look up. See PlaceRef below
+ places: List of descriptions of the place to look up. See
+ [Place identification](Input-Parameter-Types.md#place-identification)
for the various ways to reference a place.
Other parameters:
Other parameters:
max_results (int): Maximum number of results to return. The
actual number of results may be less. (Default: 10)
- min_rank (int): Lowest [address rank](../customize/Ranking.md#address-rank) to return.
- max_rank (int): Highest address rank to return.
+ min_rank (int): Lowest permissible rank for the result.
+ For addressable places this is the minimum
+ [address rank](../customize/Ranking.md#address-rank). For all
+ other places the [search rank](../customize/Ranking.md#search-rank)
+ is used.
+ max_rank (int): Highest permissible rank for the result. See min_rank above.
layers (enum): Defines the kind of data to take into account.
- See description of layers below. (Default: addresses and POIs)
+ See [layers section](Input-Parameter-Types.md#layers) for details.
+ (Default: addresses and POIs)
countries (list[str]): Restrict search to countries with the given
ISO 3166-1 alpha-2 country code. An empty list (the default)
disables this filter.
Other parameters:
max_results (int): Maximum number of results to return. The
actual number of results may be less. (Default: 10)
- min_rank (int): Lowest [address rank](../customize/Ranking.md#address-rank) to return.
- max_rank (int): Highest address rank to return.
+ min_rank (int): Lowest permissible rank for the result.
+ For addressable places this is the minimum
+ [address rank](../customize/Ranking.md#address-rank). For all
+ other places the [search rank](../customize/Ranking.md#search-rank)
+ is used.
+ max_rank (int): Highest permissible rank for the result. See min_rank above.
layers (enum): Defines the kind of data to take into account.
- See description of layers below. (Default: addresses and POIs)
+ See [layers section](Input-Parameter-Types.md#layers) for details.
+ (Default: addresses and POIs)
countries (list[str]): Restrict search to countries with the given
ISO 3166-1 alpha-2 country code. An empty list (the default)
disables this filter. Do not use, when the country parameter
Other parameters:
max_results (int): Maximum number of results to return. The
actual number of results may be less. (Default: 10)
- min_rank (int): Lowest [address rank](../customize/Ranking.md#address-rank) to return.
- max_rank (int): Highest address rank to return.
+ min_rank (int): Lowest permissible rank for the result.
+ For addressable places this is the minimum
+ [address rank](../customize/Ranking.md#address-rank). For all
+ other places the [search rank](../customize/Ranking.md#search-rank)
+ is used.
+ max_rank (int): Highest permissible rank for the result. See min_rank above.
layers (enum): Defines the kind of data to take into account.
- See description of layers below. (Default: addresses and POIs)
+ See [layers section](Input-Parameter-Types.md#layers) for details.
+ (Default: addresses and POIs)
countries (list[str]): Restrict search to countries with the given
ISO 3166-1 alpha-2 country code. An empty list (the default)
disables this filter.