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ètreTypeDescription
qobligatoirechaîneCe que l'utilisateur a saisi jusqu'ici. Au moins 2 caractères, jusqu'à 128.
limitfacultatifentierDe 1 à 10. Par défaut 5.
countriesfacultatifchaîneCodes ISO 3166-1 alpha-2 séparés par des virgules auxquels limiter les suggestions.
proximityfacultatifchaînelat,lon. Les suggestions proches sont classées en premier. Fortement recommandé pour les champs de recherche sur une carte.
typesfacultatifchaîneSous-ensemble, séparé par des virgules, de address, street, postcode, city, region, country, poi. Par défaut, tous.
langfacultatifchaîneCode ISO 639-1. Par défaut en.
keyfacultatifchaîneClé 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

ChampTypeDescription
suggestions[].textchaîneTexte d'affichage, sur une ligne, en lang.
suggestions[].lat, lonnombreCoordonnées. Toujours présentes.
suggestions[].type, precisionchaîneComme pour le géocodage direct.
suggestions[].place_idchaîneÀ passer à /v1/forward?place_id=... pour obtenir tous les composants et l'emprise. Cet appel compte comme une requête.

Remarques

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.

FournisseurHôteChemin
Google Maps Platformgapi.mygeocode.com/maps/api/place/autocomplete/json?input=...
Bing Maps REST Servicesbing.mygeocode.com/REST/v1/Autosuggest?query=...
HERE Geocoding and Searchhere.mygeocode.com/v1/autosuggest?q=...&at=lat,lng
/v1/autocomplete?q=...
Mapbox Geocodingmapbox.mygeocode.com/search/searchbox/v1/suggest?q=...
LocationIQlocationiq.mygeocode.com/v1/autocomplete?q=...
Geoapifygeoapify.mygeocode.com/v1/geocode/autocomplete?text=...
TomTom Searchtomtom.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.