Клуб API Карт

Геокодирование одинаковых улиц

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

В Кирове есть несколько улиц с одинаковыми названиями, но расположенными в разных районах. Если в адресе не указан район, то при геокодировании выбирается район по умолчанию, что в большинстве случаев не правильно.

Можно ли как-то повлиять на район по умолчанию при геокодировании, или надо явно в адресе задавать?

7 комментариев
Александр Новиков
28 января 2016, 08:14
Можно ограничить область для геокодера. Как это делать несколько раз в клубе говорилось.

И потом геокодер возвращает несколько результатов (если не вводить ограничение). Возможно в вашем случае так же выводится несколько результатов, и можно просмотрев их все отобрать нужный.
Результаты опытов:
1.  
var geocoder = new YMaps.Geocoder(org.addr, {results: 1, boundedBy:kbox2});
Не влияет на порядок выдачи позиций в моем случае, хотя в документации это обещано.

2.
var geocoder = new YMaps.Geocoder(org.addr, {results: 1, boundedBy:kbox2, strictBounds : true});
С параметром strictBounds - обрубает адреса не входящие в область, что тоже не очень хорошо.

В общем, похоже, без явного прописывания района в адресе перед улицей проблема не решается.
Александр Новиков
28 января 2016, 08:14
Есть вариант убрать results: 1 и потом просматривать все возвращенные результаты.
1. Скажите по каким именно запросам не возвращается нужный результат (т. е. порядок выдачи не меняется)?

2. strictBounds и нужен для поиска в конкретной области. Подробнее о нем можно прочитать в статье.
Например, есть улица Комсомольская в ленинском районе (центральный район) и в нововяском районе (перифирийный), нужно, чтобы по умолчанию возвращались координаты для центрального района.

выполняю такой код:

kbox2 = new YMaps.GeoBounds(new YMaps.GeoPoint(49.587641,58.653219), new YMaps.GeoPoint(49.69314,58.535928) );
var geocoder = new YMaps.Geocoder("г.Киров, ул. Комсомольская", {results: 1, boundedBy:kbox2});

где, kbox2 - квадрат не включающий Нововятский район, в результате все равно нововятск.
Это ошибка на нашей стороне. Спасибо. Починим.

В качестве временного решения могу предложить указывать адрес с точностью до района.
Такие же сложности с улицами Карла Либкнехта и Советская.