↑ Все API

Обратное геокодирование (адрес по координатам)

Находит ближайшие адреса (дома, улицы, города) по географическим координатам. Только для России.

Как вызвать

Чтобы вызвать метод, зарегистрируйтесь и подтвердите почту.

Пример запроса:

{ "lat": 55.878, "lon": 37.653 }
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Authorization: Token ${API_KEY}" \
  -d '{ "lat": 55.878, "lon": 37.653 }' \
  https://suggestions.dadata.ru/suggestions/api/4_1/rs/geolocate/address
// https://github.com/hflabs/dadata-csharp

var token = "${API_KEY}";
var api = new SuggestClientAsync(token);
var result = await api.Geolocate(lat: 55.878, lon: 37.653);
var url = "https://suggestions.dadata.ru/suggestions/api/4_1/rs/geolocate/address";
var token = "${API_KEY}";
var query = { lat: 55.878, lon: 37.653 };

var options = {
    method: "POST",
    mode: "cors",
    headers: {
        "Content-Type": "application/json",
        "Accept": "application/json",
        "Authorization": "Token " + token
    },
    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}";
$dadata = new \Dadata\DadataClient($token, null);
$result = $dadata->geolocate("address", 55.878, 37.653);
# https://github.com/hflabs/dadata-py

from dadata import Dadata
token = "${API_KEY}"
dadata = Dadata(token)
result = dadata.geolocate(name="address", lat=55.878, lon=37.653)

Параметры запроса

Название Тип Обяз.? По умолч. Описание
lat number Географическая широта
lon number Географическая долгота
count number 10 Количество результатов (максимум — 20)
radius_meters number 100 Радиус поиска в метрах (максимум – 1000)
language string ru На каком языке вернуть результат (ru / en)

Пример запроса с ограничением по радиусу в 50 м:

{
  "lat": 55.601983, "lon": 37.359486, "radius_meters": 50
}

Что в ответе

Ответ:

{
    "suggestions": [
        {
            "value": "г Москва, ул Сухонская, д 11",
            "unrestricted_value": "127642, г Москва, ул Сухонская, д 11",
            "data": {...}
        },
        {
            "value": "г Москва, ул Сухонская, д 11А",
            "unrestricted_value": "127642, г Москва, ул Сухонская, д 11А",
            "data": {...}
        },
        {
            "value": "г Москва, ул Сухонская, д 13",
            "unrestricted_value": "127642, г Москва, ул Сухонская, д 13",
            "data": {...}
        },
        {
            "value": "г Москва, ул Сухонская, д 9",
            "unrestricted_value": "127642, г Москва, ул Сухонская, д 9",
            "data": {...}
        }
    ]
}

Адреса в ответе идут в порядке удаления от заданных координат.

У адреса обычный набор полей, но некоторые из них не заполняются:

city_area
city_district*
flat_*
timezone
beltway_hit
beltway_distance
metro

Покрытие координат

«Дадата» берет координаты домов и улиц из OpenStreetMap.

Покрытие по домам:

  • Москва — 97%,
  • Санкт-Петербург — 91%,
  • другие города-миллионники — 69%,
  • остальная Россия — 47%.

По улицам:

  • Москва — 95%,
  • Санкт-Петербург — 94%,
  • другие города-миллионники — 81%,
  • остальная Россия — 70%.

Примеры вызова

Ограничения

Длина запроса (параметр query) — не более 300 символов.

Количество запросов в день — в соответствии с тарифным планом.

Максимальная частота запросов — 30 в секунду с одного IP-адреса.

Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.

Стоимость

Метод бесплатный до 10 000 запросов в день. Больше — в составе годовой подписки.

ajax-spinner

Ошибка

Укажите свой адрес электронной почты, и мы отправим на него инструкции по восстановлению пароля.