YMaps.Geocoder

Внимание

Геокодирование доступно только в актуальных версиях API.
Как перейти на API 2.1

Расширяет 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
}
Предыдущая
Следующая