YMaps.Geocoder

Расширяет YMaps.GeoObjectCollection.

Класс для обработки запросов геокодирования. По умолчанию возвращает результат геокодирования в виде группы объектов класса YMaps.GeocoderResult. В общем случае содержимым группы являются результаты, возвращаемые указанным в опции geocodeProvider сервисом геокодирования.

См.: Геокодирование

Конструктор

Имя Описание
YMaps.Geocoder(request, options)

Производит прямое (или обратное) геокодирование запроса.

Поля

Имя Описание
Events Список событий класса.
found Количество найденных по запросу результатов.
geocodeProvider Используемый сервис геокодирования.
prefLang

Предпочитаемый язык ответа.

request Текст запроса.
suggest

Если адрес был скорректирован сервисом исправления опечаток, то данное поле будет содержать исправленный вариант.

Наследуемые поля

Из YMaps.IGeoObject:
description, id, metaDataProperty, name

События

Имя Описание
Fault

При выполнении геокодирования произошла ошибка.

Load

Геокодирование закончено.

Наследуемые события

Из YMaps.Group:
Add, Remove

Наследуемые методы

Из YMaps.OverlayGroup:
getMap, getParentContainer
Из YMaps.Group:
add, filter, forEach, get, indexOf, length, remove, removeAll, splice
Из YMaps.IOverlay:
onAddToMap, onMapUpdate, onRemoveFromMap
Из YMaps.IGeoObject:
getBounds, getComputedStyle, getParentGroup, getStyle, onAddToGroup, onRemoveFromGroup, setBounds, setStyle, update

Подробное описание конструктора

YMaps.Geocoder(request, options)

Производит прямое (или обратное) геокодирование запроса.

Если запрос содержит адрес, то производится прямое геокодирование (адрес --> координаты). Если запрос содержит геоточку, то производится обратное геокодирование (координаты --> адрес).

И прямое, и обратное геокодирование производится асинхронно, поэтому для получения информации об окончании процесса и о его статусе используйте обработчики событий геокодера YMaps.Geocoder.Load и YMaps.Geocoder.Fault.

См.: Геокодирование

Пример:

// Осуществляет поиск одного объекта с именем "Москва", начиная с видимой области карты.
// Полученный результат сразу отображается на карте.
map.addOverlay(new YMaps.Geocoder("Москва", {results: 1, boundedBy: map.getBounds()}));

// искать все объекты с именем Москва, но вывести только первый
var geocoder = new YMaps.Geocoder("Москва");
YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
    if (this.length()) {
        alert("Найдено :" + this.length());
        map.addOverlay(this.get(0));
        map.panTo(this.get(0).getGeoPoint())
    } else {
        alert("Ничего не найдено"); 
    }
})
YMaps.Events.observe(geocoder, geocoder.Events.Fault, function (geocoder, errorMessage) {
    alert("Произошла ошибка: " + errorMessage)
});

Параметры:

Имя Тип Необязательный По умолчанию Описание
request String|YMaps.GeoPoint Запрос на геокодирование. Если запрос содержит адрес, то производится прямое геокодирование адреса в координаты. Если геоточку, то производится обратное геокодирование координат в ближайший адрес.
options Object Параметры геокодирования.
options.geocodeProvider String|YMaps.IGeocodeProvider "yandex#map" Использовать заданный сервис геокодирования.
options.boundedBy YMaps.GeoBounds Прямоугольная область на карте, где предположительно находится искомый объект.
options.strictBounds Boolean false Искать только внутри области, заданной опцией boundedBy.
options.results Integer Количество возвращаемых результатов (не более).
options.skip Integer Пропустить первые n результатов.
options.kind String

Вид топонима (только для обратного геокодирования).

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

  • house - дом;
  • street - улица;
  • metro - станция метро;
  • locality - населённый пункт (город/поселок/деревня/село/...).
options.prefLang String

Предпочитаемый язык ответа.

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

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

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

Подробное описание полей

Events

Object Events

Список событий класса.

found

Integer found

Количество найденных по запросу результатов.

geocodeProvider

YMaps.IGeocodeProvider geocodeProvider

Используемый сервис геокодирования.

prefLang

String prefLang

Предпочитаемый язык ответа.

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

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

request

String request

Текст запроса.

suggest

String suggest

Если адрес был скорректирован сервисом исправления опечаток, то данное поле будет содержать исправленный вариант.

Пример:

// Запрос с опечаткой и полученный от геокодера исправленный вариант.
request: Сомакатная
suggest: С<fix>а</fix>м<fix>о</fix>катная

Подробное описание событий

Fault

Fault

При выполнении геокодирования произошла ошибка.

В callback-функцию передаются два аргумента:

  • ссылка на себя;
  • строка с описанием ошибки.

Load

Load

Геокодирование закончено.

В callback-функцию передается ссылка на себя.

Пример:

//
YMaps.Events.observe(geocoder, geocoder.Events.Load, function (param) {
    geocoder == param; // true
}