Files
odoo_source/addons/base_geolocalize
Jeremy Kersten 50d21df156 [FIX] base_geolocalize: allow to force country in request
Before this commit, using google geoloc, we only provide a string as address
withtout more information.

Now by defaut, we force the country as components:
https://developers.google.com/maps/documentation/geocoding/intro#geocoding

Related to task-2030886

**setup:**
```python
url = "https://maps.googleapis.com/maps/api/geocode/json"
```

**before:**
```python
params = {'address': 'Georgia', 'key': apikey}
requests.get(url, params).json()
```

>       ==> Return coordinate of "Georgia, United States"
>           What is completely wrong
>

**after:**
```python
params = {'address': 'Georgia', 'components':'country:Georgia', 'key': apikey}
requests.get(url, params).json()
```

>       ==> Return Nothing
>          What is strange but less wrong than US
>

```python
params = {'address': 'Belgium', 'components':'country:Belgium', 'key': apikey}
requests.get(url, params).json()
```

>       ==> Return coordinate of Belgium

closes odoo/odoo#34582

Signed-off-by: Christophe Simonis <chs@odoo.com>
2019-07-04 13:08:42 +00:00
..

Partner geolocalize

Contacts geolocation API to convert partner addresses into GPS coordinates.

Configure

You can configure in General Settings the default provider of the geolocation API service.

A method _call_<service> should be implemented in object base.geocoder that accepts an address string as parameter and return (latitude, longitude) tuple for this to work. If no default provider is set, the first one will be used by default.

An optional method _geo_query_address_<service> which takes address fields as parameters can be defined to encode the query string for the provider.