Skip to content

Geocoder Autocomplete API

Module for the HERE Geocoder Auto Complete API.

GeocoderAutoCompleteApi

Bases: HEREApi

A python interface into the HERE Geocoder Auto Complete API.

Source code in src/herepy/geocoder_autocomplete_api.py
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
class GeocoderAutoCompleteApi(HEREApi):
    """A python interface into the HERE Geocoder Auto Complete API."""

    def __init__(self, api_key: str = None, timeout: int = None):
        """
        Initialize a GeocoderAutoCompleteApi instance.

        Args:
          api_key (str):
            API key taken from HERE Developer Portal.
          timeout (int):
            Timeout limit for requests.

        """
        super().__init__(api_key, timeout)
        self._base_url = "https://autocomplete.search.hereapi.com/v1/autocomplete"

    def __get(self, data):
        url = Utils.build_url(self._base_url, extra_params=data)
        response = requests.get(url, timeout=self._timeout)
        json_data = json.loads(response.content.decode("utf8"))
        if json_data.get("items") is not None:
            return GeocoderAutoCompleteResponse.new_from_jsondict(json_data)
        else:
            raise HEREError(
                json_data.get(
                    "error_description",
                    "Error occurred on " + sys._getframe(1).f_code.co_name,
                )
            )

    def address_suggestion(self, query: str, prox: list[float], radius: int, lang: str = "en-US") -> GeocoderAutoCompleteResponse | None:
        """
        Request a list of suggested addresses found within a specified area.

        Args:
          query (str):
            Query search string
          prox (List):
            List contains latitude and longitude in order.
          radius (int):
            Radius in meters
          lang (str):
            BCP47 compliant Language Code.

        Returns:
          GeocoderAutoCompleteResponse
        Raises:
          HEREError

        """
        data = {
            "q": query,
            "prox": str.format("{0},{1},{2}", prox[0], prox[1], radius),
            "apikey": self._api_key,
            "lang": lang,
        }
        return self.__get(data)

    def limit_results_byaddress(self, query: str, country_code: str, lang: str = "en-US") -> GeocoderAutoCompleteResponse | None:
        """
        Request a list of suggested addresses within a single country.

        Args:
          query (str):
            Query search string
          country_code (str):
            Country code (USA etc.)
          lang (str):
            BCP47 compliant Language Code.

        Returns:
          GeocoderAutoCompleteResponse
        Raises:
          HEREError

        """
        data = {
            "q": query,
            "in": "countryCode:" + country_code,
            "apikey": self._api_key,
            "lang": lang,
        }
        return self.__get(data)

__init__(api_key=None, timeout=None)

Initialize a GeocoderAutoCompleteApi instance.

Parameters:

Name Type Description Default
api_key str

API key taken from HERE Developer Portal.

None
timeout int

Timeout limit for requests.

None
Source code in src/herepy/geocoder_autocomplete_api.py
19
20
21
22
23
24
25
26
27
28
29
30
31
def __init__(self, api_key: str = None, timeout: int = None):
    """
    Initialize a GeocoderAutoCompleteApi instance.

    Args:
      api_key (str):
        API key taken from HERE Developer Portal.
      timeout (int):
        Timeout limit for requests.

    """
    super().__init__(api_key, timeout)
    self._base_url = "https://autocomplete.search.hereapi.com/v1/autocomplete"

address_suggestion(query, prox, radius, lang='en-US')

Request a list of suggested addresses found within a specified area.

Parameters:

Name Type Description Default
query str

Query search string

required
prox List

List contains latitude and longitude in order.

required
radius int

Radius in meters

required
lang str

BCP47 compliant Language Code.

'en-US'

Returns:

Type Description
GeocoderAutoCompleteResponse | None

GeocoderAutoCompleteResponse

Raises: HEREError

Source code in src/herepy/geocoder_autocomplete_api.py
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
def address_suggestion(self, query: str, prox: list[float], radius: int, lang: str = "en-US") -> GeocoderAutoCompleteResponse | None:
    """
    Request a list of suggested addresses found within a specified area.

    Args:
      query (str):
        Query search string
      prox (List):
        List contains latitude and longitude in order.
      radius (int):
        Radius in meters
      lang (str):
        BCP47 compliant Language Code.

    Returns:
      GeocoderAutoCompleteResponse
    Raises:
      HEREError

    """
    data = {
        "q": query,
        "prox": str.format("{0},{1},{2}", prox[0], prox[1], radius),
        "apikey": self._api_key,
        "lang": lang,
    }
    return self.__get(data)

limit_results_byaddress(query, country_code, lang='en-US')

Request a list of suggested addresses within a single country.

Parameters:

Name Type Description Default
query str

Query search string

required
country_code str

Country code (USA etc.)

required
lang str

BCP47 compliant Language Code.

'en-US'

Returns:

Type Description
GeocoderAutoCompleteResponse | None

GeocoderAutoCompleteResponse

Raises: HEREError

Source code in src/herepy/geocoder_autocomplete_api.py
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
def limit_results_byaddress(self, query: str, country_code: str, lang: str = "en-US") -> GeocoderAutoCompleteResponse | None:
    """
    Request a list of suggested addresses within a single country.

    Args:
      query (str):
        Query search string
      country_code (str):
        Country code (USA etc.)
      lang (str):
        BCP47 compliant Language Code.

    Returns:
      GeocoderAutoCompleteResponse
    Raises:
      HEREError

    """
    data = {
        "q": query,
        "in": "countryCode:" + country_code,
        "apikey": self._api_key,
        "lang": lang,
    }
    return self.__get(data)