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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
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)

    async def __get_async(self, data):
        url = Utils.build_url(self._base_url, extra_params=data)
        response = await self._get_async_client().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,
                )
            )

    async def async_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 await self.__get_async(data)

    async def async_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 await self.__get_async(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)

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

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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
async def async_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 await self.__get_async(data)

async_limit_results_byaddress(query, country_code, lang='en-US') async

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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
async def async_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 await self.__get_async(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)