Прямое геокодирование — это функция преобразования географических адресов в координаты в формате «широта-долгота». Например, указав адрес «221b Baker St, London NW1 6XE», вы получите его координаты «51.524259, -0.1584738» и отобразите его на карте.
При использовании прямого геокодирования будет получен список географических объектов из базы данных OSM, отсортированный по релевантности. Это означает, что варианты, которые считаются наиболее точно соответствующими ожидаемым результатам, будут находиться в верхней части списка.
ПРЯМОЕ ГЕОКОДИРОВАНИЕ
Если вы хотите сузить запрос по типу искомого элемента, например, искать только города или страны, используйте следующие параметры:
country — поиск по стране
state — поиск по штатам county — поиск по районам/областям
city — поиск по названиям городов street — поиск по названиям улиц.
Необходимо указать в следующем формате: <номер_дома> <название_улицы>
postalcode — ограничить результаты указанным почтовым индексом. Обратите внимание, что эти параметры не применимы с параметром q. Рассмотрим поиск городов с названием Санкт-Петербург:
GET https://api.pickpoint.io/v1/forward
Основным параметром функции геокодирования является поисковый запрос, отправляемый с ключом q.
Обычно поисковым запросом является географический адрес объекта, например: 221b Baker St, London NW1 6XE
Обратите внимание, что строка запроса должна быть преобразована в формат URL-кодирования. Параметра q также достаточно для создания простого запроса:
Функции прямого геокодирования выполняются с использованием следующих запросов:
GET /forward/?key=YOUR-API-KEY&q=21b%20Baker%20St,%20London%20NW1%206XE
GET /forward/?key=YOUR-API-KEY&city=Saint-Petersburg
По разным причинам вам может потребоваться ограничить результаты поиска. Ниже представлено несколько полезных параметров, которые можно использовать для этого. Параметр countrycodes используется для ограничения области поиска по стране или списку стран. Значением параметра должен быть двухбуквенный код страны (или коды стран) в формате ISO 3166 alpha-2.
Вот пример:
Польша - pl
Новая Зеландия - nz
Китай - cn
Возможно, вы знаете, что географическое название Лондон относится не только к столице Великобритании, но и к нескольким городам в США. Чтобы исключить результаты за пределами Великобритании, сформулируйте запрос следующим образом:
GET /forward/?key=YOUR-API-KEY&q=London&countrycodes=gb
Полный список кодов стран в формате ISO 3166 alpha-2 можно
найти здесь. Существует большое количество различных геообъектов с одинаковым названием. Но если ограничить область поиска геометрически, сформировав прямоугольную область на координатной сетке, вы, вероятно, получите лучшие результаты. Здесь вступает в игру параметр viewbox. Например, вы хотите найти координаты объектов, в названиях которых есть слово «парк». Более конкретно, ваш поиск осуществляется только в Лондоне. Используя результаты предыдущего запроса, укажите:
GET /forward/?key=YOUR-API-KEY&q=park&viewbox=0.0,52.0,1.0,53.0&bounded=1
Обратите внимание, что помимо viewbox запрос включает параметр bounded. Использование этого параметра гарантирует, что будут показаны только результаты из указанной области (viewbox). Чтобы исключить заведомо нерелевантные результаты, используйте параметр exclude_place_ids с идентификаторами OSM (place_id) для нежелательных географических объектов. Например, вы хотите найти все объекты с именем «London», за исключением столицы Великобритании. Используя place_id, полученный в результате одного из наших предыдущих запросов, получаем:
GET /forward/?key=YOUR-API-KEY&q=London&exclude_place_ids=158415464
Чтобы ограничить количество результирующих вариантов, используйте параметр limit:
GET /forward/?key=YOUR-API-KEY&q=London&limit=1