Автодополнение адресов

Подсказки для частичного ввода, оптимизированные по задержке и устойчивые к опечаткам. Каждая подсказка содержит координаты, поэтому большинству интеграций второй вызов не нужен вовсе.

GEThttps://api.mygeocode.com/v1/autocomplete

Параметры

ПараметрТипОписание
qобязательныйстрокаТо, что пользователь уже ввёл. Не менее 2 и не более 128 символов.
limitнеобязательныйцелое числоОт 1 до 10. По умолчанию 5.
countriesнеобязательныйстрокаКоды ISO 3166-1 alpha-2 через запятую, которыми ограничиваются подсказки.
proximityнеобязательныйстрокаlat,lon. Ближайшие подсказки идут первыми. Настоятельно рекомендуется для полей поиска на карте.
typesнеобязательныйстрокаПодмножество значений через запятую: address, street, postcode, city, region, country, poi. По умолчанию все.
langнеобязательныйстрокаКод ISO 639-1. По умолчанию en.
keyнеобязательныйстрокаAPI-ключ, если он не передан в заголовке.

Пример

$ 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"])
Ответ
{
  "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" }
  ]
}

Поля ответа

ПолеТипОписание
suggestions[].textстрокаОтображаемый текст, одной строкой, на языке lang.
suggestions[].lat, lonчислоКоординаты. Присутствуют всегда.
suggestions[].type, precisionстрокаКак в прямом геокодировании.
suggestions[].place_idстрокаПередайте в /v1/forward?place_id=..., чтобы получить все компоненты адреса и границы. Этот вызов засчитывается как один запрос.

Примечания

Тот же запрос в форматах других провайдеров

Если у вас уже есть код, написанный под одного из этих провайдеров, оставьте его: совместимый хост принимает тот же путь и те же параметры и отвечает в формате ответа этого провайдера, а за ним работает этот эндпоинт. См. как работают совместимые хосты.

ПровайдерХостПуть
Платформа Google Mapsgapi.mygeocode.com/maps/api/place/autocomplete/json?input=...
REST-сервисы Bing Mapsbing.mygeocode.com/REST/v1/Autosuggest?query=...
Геокодирование и поиск HEREhere.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

Ошибки

400 invalid_request, если q короче 2 символов или types содержит неизвестное значение.