API прямого геокодирования
Отправьте адрес, название места, почтовый индекс или приблизительное описание вроде «кофейня рядом с Кингс-Кросс» и получите координаты, очищенный адрес, его части, ограничивающую рамку и уровень точности, который показывает, насколько можно доверять точке.
Пример
$ curl -H "X-API-Key: YOUR_KEY" "https://api.mygeocode.com/v1/forward?q=221B+Baker+Street,+London&limit=1"Свободный текст работает. Структурированный запрос тоже, если у вас уже есть все части: street=221B Baker Street&city=London&country=gb. Ограничьте результаты одной или несколькими странами с помощью country=gb,ie, сместите их к точке с помощью proximity=lat,lon или к области с помощью bounds.
{
"status": "ok",
"query": "221B Baker Street, London",
"results": [
{
"formatted": "221B Baker Street, London NW1 6XE, United Kingdom",
"lat": 51.523767,
"lon": -0.158555,
"type": "address",
"precision": "house",
"confidence": 0.97,
"components": {
"house_number": "221B",
"road": "Baker Street",
"neighbourhood": "Marylebone",
"city": "London",
"state": "England",
"postcode": "NW1 6XE",
"country": "United Kingdom",
"country_code": "gb"
},
"bounds": { "north": 51.523917, "south": 51.523617, "east": -0.158305, "west": -0.158805 }
}
]
}Что вы получаете
| Поле | Значение |
|---|---|
formatted | Полный адрес, записанный так, как принято записывать адреса в этой стране. |
lat, lon | Десятичные градусы, WGS 84. До шести знаков после запятой. |
type | Что было найдено: address, street, postcode, city, region, country или poi. |
precision | house, street, postcode или admin. См. покрытие. |
confidence | От 0 до 1. Насколько мы уверены, что это именно то место, которое вы имели в виду, с учётом запроса. Не зависит от точности: запрос города может быть сопоставлен с уверенностью 1 при точности admin. |
components | Адрес, разбитый на части, с одинаковыми названиями ключей во всех странах. Присутствуют только те части, которые существуют. |
bounds | Ограничивающая рамка найденного объекта: здания, улицы, зоны почтового индекса или города. |
Где это используется
Очистка адресов клиентов
Геокодируйте адрес при регистрации и сохраняйте formatted и components рядом с тем, что ввёл клиент. Отклоняйте всё, что ниже precision: street, и просите клиента проверить адрес.
Размещение записей на карте
Пропустите CSV с адресами магазинов или объектов недвижимости со скоростью 50 запросов в секунду и нанесите их на карту. Поле bounds даёт разумный масштаб для каждого.
Поиск по месту
Превратите «квартиры в Хакни» в ограничивающую рамку и выполните с ней запрос к своей базе данных. type показывает, что ввёл пользователь: город, улицу или здание.
Точность
Результаты с точностью до дома зависят от наличия адресных данных для страны, а они есть не везде. На странице покрытия указан лучший уровень, которого мы достигаем в каждой из 249 стран и территорий. Если сопоставить номер дома не удаётся, мы переходим к улице, затем к почтовому индексу, затем к населённому пункту, а поле precision сообщает, к какому уровню. Мы никогда не возвращаем центр страны под видом адреса.
Цена и лимиты
Один вызов равен одному запросу, сколько бы результатов он ни вернул (до 10 с параметром limit). У каждого ключа есть 2 500 бесплатных запросов в день; сверх этого 0,0001 € за запрос с предоплаченного баланса или бесплатно на ключе Unlimited (50 € в месяц). Подробнее о ценах.
Переходите с другого провайдера? Хосты Google, Bing, HERE, Mapbox и другие совместимые хосты отвечают на запросы прямого геокодирования в форматах этих провайдеров.