80 lines
2.2 KiB
Python
80 lines
2.2 KiB
Python
from geopy.geocoders.base import DEFAULT_SENTINEL
|
|
from geopy.geocoders.tomtom import TomTom
|
|
|
|
__all__ = ("AzureMaps", )
|
|
|
|
|
|
class AzureMaps(TomTom):
|
|
"""AzureMaps geocoder based on TomTom.
|
|
|
|
Documentation at:
|
|
https://docs.microsoft.com/en-us/azure/azure-maps/index
|
|
"""
|
|
|
|
geocode_path = '/search/address/json'
|
|
reverse_path = '/search/address/reverse/json'
|
|
|
|
def __init__(
|
|
self,
|
|
subscription_key,
|
|
*,
|
|
scheme=None,
|
|
timeout=DEFAULT_SENTINEL,
|
|
proxies=DEFAULT_SENTINEL,
|
|
user_agent=None,
|
|
ssl_context=DEFAULT_SENTINEL,
|
|
adapter_factory=None,
|
|
domain='atlas.microsoft.com'
|
|
):
|
|
"""
|
|
:param str subscription_key: Azure Maps subscription key.
|
|
|
|
:param str scheme:
|
|
See :attr:`geopy.geocoders.options.default_scheme`.
|
|
|
|
:param int timeout:
|
|
See :attr:`geopy.geocoders.options.default_timeout`.
|
|
|
|
:param dict proxies:
|
|
See :attr:`geopy.geocoders.options.default_proxies`.
|
|
|
|
:param str user_agent:
|
|
See :attr:`geopy.geocoders.options.default_user_agent`.
|
|
|
|
:type ssl_context: :class:`ssl.SSLContext`
|
|
:param ssl_context:
|
|
See :attr:`geopy.geocoders.options.default_ssl_context`.
|
|
|
|
:param callable adapter_factory:
|
|
See :attr:`geopy.geocoders.options.default_adapter_factory`.
|
|
|
|
.. versionadded:: 2.0
|
|
|
|
:param str domain: Domain where the target Azure Maps service
|
|
is hosted.
|
|
"""
|
|
super().__init__(
|
|
api_key=subscription_key,
|
|
scheme=scheme,
|
|
timeout=timeout,
|
|
proxies=proxies,
|
|
user_agent=user_agent,
|
|
ssl_context=ssl_context,
|
|
adapter_factory=adapter_factory,
|
|
domain=domain,
|
|
)
|
|
|
|
def _geocode_params(self, formatted_query):
|
|
return {
|
|
'api-version': '1.0',
|
|
'subscription-key': self.api_key,
|
|
'query': formatted_query,
|
|
}
|
|
|
|
def _reverse_params(self, position):
|
|
return {
|
|
'api-version': '1.0',
|
|
'subscription-key': self.api_key,
|
|
'query': position,
|
|
}
|