geocode
Статическая функция.
Обрабатывает запросы геокодирования. Результат запроса может быть представлен в формате JSON или в виде объекта GeoObjectCollection.
Returns объект-promise.
{ util.Promise } geocode(request[, options])
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
request * | — | Тип: String|Number[] Адрес, для которого необходимо определить координаты (прямое геокодирование) или координаты, для которых необходимо определить адрес (обратное геокодирование). |
options | — | Тип: Object Опции. |
options.boundedBy | — | Тип: Number[][] Прямоугольная область на карте, в которой предположительно находится искомый объект. |
options.json | false | Тип: Boolean Если true, то в функцию-обработчик передается JSON. В противном случае в функцию обработчик передается объект, содержащий в поле geoObjects результаты геокодирования в виде коллекции GeoObjectCollection. |
options.kind | 'house' | Тип: String Вид топонима (только для обратного геокодирования).
Список возможных значений:
|
options.provider | 'yandex#map' | Тип: IGeocodeProvider|String Провайдер геокодирования. Доступный провайдер:
|
options.results | 10 | Тип: Integer Максимальное количество возвращаемых результатов. |
options.searchCoordOrder | — | Тип: String Определяет каким образом нужно интрепретировать координаты в запросе. |
options.skip | 0 | Тип: Integer Число результатов, которое необходимо пропустить. |
options.strictBounds | false | Тип: Boolean Искать только внутри области, заданной опцией boundedBy. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
request * | — | Тип: String|Number[] Адрес, для которого необходимо определить координаты (прямое геокодирование) или координаты, для которых необходимо определить адрес (обратное геокодирование). |
options | — | Тип: Object Опции. |
options.boundedBy | — | Тип: Number[][] Прямоугольная область на карте, в которой предположительно находится искомый объект. |
options.json | false | Тип: Boolean Если true, то в функцию-обработчик передается JSON. В противном случае в функцию обработчик передается объект, содержащий в поле geoObjects результаты геокодирования в виде коллекции GeoObjectCollection. |
options.kind | 'house' | Тип: String Вид топонима (только для обратного геокодирования).
Список возможных значений:
|
options.provider | 'yandex#map' | Тип: IGeocodeProvider|String Провайдер геокодирования. Доступный провайдер:
|
options.results | 10 | Тип: Integer Максимальное количество возвращаемых результатов. |
options.searchCoordOrder | — | Тип: String Определяет каким образом нужно интрепретировать координаты в запросе. |
options.skip | 0 | Тип: Integer Число результатов, которое необходимо пропустить. |
options.strictBounds | false | Тип: Boolean Искать только внутри области, заданной опцией boundedBy. |
* Обязательный параметр/опция.
Пример:
// Пример 1
// Осуществляет поиск объекта с именем "Москва".
// Полученный результат сразу отображается на карте.
var myGeocoder = ymaps.geocode("Москва");
myGeocoder.then(
function (res) {
map.geoObjects.add(res.geoObjects);
},
function (err) {
// обработка ошибки
}
);
// Пример 2
// реализует интерфейс IGeocodeProvider
var randomPointProvider = {
geocode: function (request, options) {
var promise = new ymaps.util.Promise(),
geoObjects = new ymaps.GeoObjectArray(),
results = options.results || 10;
for (var i = 0; i < results; i++) {
geoObjects.add(new ymaps.GeoObject({
geometry: {
type: "Point",
coordinates: [(Math.random() - 0.5) * 180, (Math.random() - 0.5) * 360]
},
properties: {
name: request + ' ' + i,
description: request + '\'s description ' + i,
balloonContentBody: '<p>' + request + ' ' + i + '</p>'
}
}));
}
var response = {
geoObjects: geoObjects, // геообъекты поисковой выдачи
// метаинформация ответа
metaData: {
geocoder: {
request: request, // строка обработанного запроса
found: results, // количество найденных результатов
results: results, // количество возвращенных результатов
skip: options.skip || 0 // количество пропущенных результатов
}
}
};
// выполняем асинхронную обработку
setTimeout(function () {
promise.resolve(response);
}, 0);
return promise;
}
},
myGeocoder = ymaps.geocode("Москва", { provider: randomPointProvider });
myGeocoder.then(
function (res) {
map.geoObjects.add(res.geoObjects);
},
function (err) {
// обработка ошибки
}
);