Клуб API Карт

Приоритетность результатов в ответе геокодера

Пост в архиве.

 

Иногда в городе может быть две (или больше) улиц с одинаковым названием.

Обычно одна улица хорошо известна, а другая находится где-то в пригороде.

Тогда геокодер возвращает несколько результатов для каждой улицы.

Как понять какой результат относится к "основной" улице?

Меня устроит способ, которым сам yandex определяет.

 

Приведу пример:

Нужно найти на карте координаты по такому запросу: "город Санкт-Петербург, Академика Павлова"

Если вбить это запрос на http://maps.yandex.ru/ - то yandex покажет ожидаемый результат - улицу в центре города в Петроградском районе.

 

Если уже обратиться через HTTP запрос:

http://geocode-maps.yandex.ru/1.x/?results=2&geocode=%E3%EE%F0%EE%E4+%D1%E0%ED%EA%F2-%CF%E5%F2%E5%F0%E1%F3%F0%E3%2C+%C0%EA%E0%E4%E5%EC%E8%EA%E0+%CF%E0%E2%EB%EE%E2%E0

 (можно открыть в браузере)

 

то мы получим два результата:

 1. Санкт-Петербург, Красносельский район, улица Академика Павлова

 2. Санкт-Петербург, Петроградский район, улица Академика Павлова

 

почему yandex на карте показывает второй результат? как он определяет что он "основной"?

Если бы он возвращал его первым результатом, то я бы подумал, что результаты возвращаются с ростом удаления от центра города.

Но возможно порядок результатов ничего не значит. И при другом запросе центральная улица будет, наоборот, на первом месте.

 

4 комментария

Наверное потому что мозги у поиска сносит.

Двух одинаковых улиц в одном городе не бывает, но а Питере - две академика Павлова и три Андреевские


А maps.yandex.ru в геокодер передает текущий центр карты, образно говоря, что меняет ранжирование.

и как передать этот "текущий центр карты"?

здесь

http://api.yandex.ru/maps/doc/geocoder/desc/concepts/input_params.xml?lang=ru

я не нашел ничего похожего.

Там есть ll, spn

спасибо, получилось!