Saisie semi-automatique d'adresses
Des suggestions pour une saisie partielle, optimisées pour la latence et la tolérance aux fautes de frappe. Chaque suggestion contient des coordonnées, si bien que la plupart des intégrations n'ont jamais besoin d'un second appel.
GEThttps://api.mygeocode.com/v1/autocomplete
Paramètres
| Paramètre | Type | Description |
|---|---|---|
qobligatoire | chaîne | Ce que l'utilisateur a saisi jusqu'ici. Au moins 2 caractères, jusqu'à 128. |
limitfacultatif | entier | De 1 à 10. Par défaut 5. |
countriesfacultatif | chaîne | Codes ISO 3166-1 alpha-2 séparés par des virgules auxquels limiter les suggestions. |
proximityfacultatif | chaîne | lat,lon. Les suggestions proches sont classées en premier. Fortement recommandé pour les champs de recherche sur une carte. |
typesfacultatif | chaîne | Sous-ensemble, séparé par des virgules, de address, street, postcode, city, region, country, poi. Par défaut, tous. |
langfacultatif | chaîne | Code ISO 639-1. Par défaut en. |
keyfacultatif | chaîne | Clé d'API, si elle n'est pas envoyée dans un en-tête. |
Exemple
$ curl -H "X-API-Key: YOUR_KEY" "https://api.mygeocode.com/v1/autocomplete?q=oxford+st&proximity=51.515,-0.141&limit=3"const url = new URL("https://api.mygeocode.com/v1/autocomplete");
url.searchParams.set("q", "oxford st");
url.searchParams.set("proximity", "51.515,-0.141");
url.searchParams.set("limit", "3");
const { suggestions } = await (await fetch(url, { headers: { "X-API-Key": "YOUR_KEY" } })).json();
suggestions.forEach((s) => console.log(s.text, s.lat, s.lon));import requests
r = requests.get("https://api.mygeocode.com/v1/autocomplete",
params={"q": "oxford st", "proximity": "51.515,-0.141", "limit": 3}, headers={"X-API-Key": "YOUR_KEY"}, timeout=5)
for s in r.json()["suggestions"]:
print(s["text"], s["lat"], s["lon"])Réponse
{
"status": "ok",
"query": "oxford st",
"suggestions": [
{ "text": "Oxford Street, London W1, United Kingdom", "lat": 51.515419, "lon": -0.141588, "type": "street", "precision": "street", "place_id": "gb.street.0a91e2c4" },
{ "text": "Oxford Street, Southampton SO14, United Kingdom", "lat": 50.899021, "lon": -1.399537, "type": "street", "precision": "street", "place_id": "gb.street.77b4d1f0" },
{ "text": "Oxford Street Station, London W1, United Kingdom", "lat": 51.515167, "lon": -0.141251, "type": "poi", "precision": "house", "place_id": "gb.poi.3c5a8e19" }
]
}Champs de la réponse
| Champ | Type | Description |
|---|---|---|
suggestions[].text | chaîne | Texte d'affichage, sur une ligne, en lang. |
suggestions[].lat, lon | nombre | Coordonnées. Toujours présentes. |
suggestions[].type, precision | chaîne | Comme pour le géocodage direct. |
suggestions[].place_id | chaîne | À passer à /v1/forward?place_id=... pour obtenir tous les composants et l'emprise. Cet appel compte comme une requête. |
Remarques
- Appliquez un anti-rebond d'environ 150 ms sur la saisie et annulez les requêtes en cours lorsque l'utilisateur continue de taper. Les réponses contiennent la
queryà laquelle elles répondent, ce qui vous permet d'écarter les réponses périmées. - Il n'y a pas de jetons de session. Chaque appel est une requête. Choisir une adresse demande généralement de 4 à 6 appels.
- Pour les sites publics, l'usage prévu est l'appel depuis le navigateur avec l'offre gratuite. C'est l'IP du visiteur qui est comptée, pas la vôtre.
- Les formats du widget Google
places.Autocomplete, de Mapbox Search Box, de HERE Autosuggest et de Bing Autosuggest sont disponibles sur les hôtes compatibles (drop-in).
La même recherche aux formats d'autres fournisseurs
Si vous avez déjà du code écrit pour l'un de ces fournisseurs, gardez-le : l'hôte compatible accepte le même chemin et les mêmes paramètres et répond dans le format de réponse de ce fournisseur, avec cet endpoint derrière. Voir le fonctionnement des hôtes compatibles.
| Fournisseur | Hôte | Chemin |
|---|---|---|
| Google Maps Platform | gapi.mygeocode.com | /maps/api/place/autocomplete/json?input=... |
| Bing Maps REST Services | bing.mygeocode.com | /REST/v1/Autosuggest?query=... |
| HERE Geocoding and Search | here.mygeocode.com | /v1/autosuggest?q=...&at=lat,lng/v1/autocomplete?q=... |
| Mapbox Geocoding | mapbox.mygeocode.com | /search/searchbox/v1/suggest?q=... |
| LocationIQ | locationiq.mygeocode.com | /v1/autocomplete?q=... |
| Geoapify | geoapify.mygeocode.com | /v1/geocode/autocomplete?text=... |
| TomTom Search | tomtom.mygeocode.com | /search/2/search/{query}.json?typeahead=true |
Erreurs
400 invalid_request lorsque q compte moins de 2 caractères, ou que types contient une valeur inconnue.