API: геокодирование (координаты по адресу)
Определяет координаты адреса (дома, улицы, города). Только для России.
Это документация для разработчиков. Определить координаты в демоформе, посмотреть сценарии использования и варианты подключения сервиса можно на странице «Найти координаты по адресу»
Как вызвать
Чтобы вызвать метод, зарегистрируйтесь и подтвердите почту.
Пример запроса:
curl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -H "Authorization: Token ${API_KEY}" \ -H "X-Secret: ${SECRET_KEY}" \ -d '[ "москва сухонская 11" ]' \ https://cleaner.dadata.ru/api/v1/clean/address
// https://github.com/hflabs/dadata-csharp var token = "${API_KEY}"; var secret = "${SECRET_KEY}"; var api = new CleanClientAsync(token, secret); var result = await api.Clean<Address>("москва сухонская 11");
// https://github.com/ekomobile/dadata // Использует API-ключ из переменной окружения DADATA_API_KEY, // а секретный ключ из переменной окружения DADATA_SECRET_KEY import ( "context" dadata "github.com/ekomobile/dadata/v2" ) func main() { api := dadata.NewCleanApi() query := "москва сухонская 11" result, err := api.Address(context.Background(), query) }
var url = "https://cleaner.dadata.ru/api/v1/clean/address"; var token = "${API_KEY}"; var secret = "${SECRET_KEY}"; var query = "москва сухонская 11"; var options = { method: "POST", mode: "cors", headers: { "Content-Type": "application/json", "Authorization": "Token " + token, "X-Secret": secret }, body: JSON.stringify([query]) } fetch(url, options) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log("error", error));
// https://github.com/hflabs/dadata-php $token = "${API_KEY}"; $secret = "${SECRET_KEY}"; $dadata = new \Dadata\DadataClient($token, $secret); $result = $dadata->clean("address", "москва сухонская 11");
# https://github.com/hflabs/dadata-py from dadata import Dadata token = "${API_KEY}" secret = "${SECRET_KEY}" dadata = Dadata(token, secret) result = dadata.clean("address", "москва сухонская 11")
Укажите при вызове:
Content-Type: application/json
.Accept: application/json
.${API_KEY}
— API-ключ.${SECRET_KEY}
— секретный ключ.
Тело запроса передавайте в кодировке UTF-8
.
Что в ответе
Адрес с координатами:
[ { "source": "москва сухонская 11", "result": "г Москва, ул Сухонская, д 11", "postal_code": "127642", "country": "Россия", "region": "Москва", "city_area": "Северо-восточный", "city_district": "Северное Медведково", "street": "Сухонская", "house": "11", "geo_lat": "55.8782557", "geo_lon": "37.65372", "qc_geo": 0 } ]
Координаты возвращаются в полях geo_lat
и geo_lon
. Поле qc_geo
показывает, насколько точно удалось определить координаты:
Код qc_geo | Описание |
---|---|
0 | Точные координаты дома |
1 | Ближайший дом |
2 | Улица |
3 | Населенный пункт |
4 | Город |
5 | Координаты не определены |
Метод возвращает больше полей, чем показано в примере. Описание всех полей см. в API Стандартизации.
Покрытие координат
«Дадата» берет координаты домов и улиц из OpenStreetMap.
Покрытие по домам:
- Москва — 97%,
- Санкт-Петербург — 91%,
- другие города-миллионники — 69%,
- остальная Россия — 47%.
По улицам:
- Москва — 95%,
- Санкт-Петербург — 94%,
- другие города-миллионники — 81%,
- остальная Россия — 70%.
Примеры и интеграции
Ограничения
Максимальная частота запросов — 20 в секунду с одного IP-адреса.
Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.
Дадата не поддерживает вызов этого метода из браузерного JavaScript. Иначе злоумышленник мог бы похитить секретный ключ и использовать API за ваш счет.
Стоимость
Каждый вызов платный, вне зависимости от того, удалось определить координаты или нет.