Блог API Яндекс.Карт

Наш геокодер теперь полиглот

26 марта 2010, 19:11

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

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

С версии 1.1.8 появилась возможность контролировать язык результатов поиска с помощью параметра prefLang.

Параметр prefLang позволяюет задать предпочтительный язык, на котором будет производиться выдача результатов геокодирования. Код языка указывается в соответствии со стандартом ISO 639.

Этот параметр не влияет на процедуру поиска, а только изменяет описания результатов: описание объекта отдается на предпочитаемом языке, если оно доступно.

Список возможных значений:

  • ru – русский;
  • uk – украинский;
  • be – белорусский.

Если установить параметр prefLang в значение “uk”, то в результате поиска адреса «киев, площадь независимости» будет получен результат – «київ майдан незалежності».

var geocoder = new YMaps.Geocoder("Киев, площадь Независимости", { prefLang : "uk" } );
 
YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {
    map.addOverlay(geocoder.get(0));
    map.setBounds(geocoder.get(0).getBounds());
});

Попробовать новый параметр действий и оценить результаты поиска можно с помощью небольшого примера:

http://ymaps.narod2.ru/examples/preflang.html

По запросу на карте будет отображен первый релевантный результат.