Вход

Просмотр полной версии : Получение результата запроса яндекс карты


elink12
05.01.2019, 21:19
Друзья, может кто-то подскажет, есть запрос на получение подсказок яндекс карты, требуется Синхронно получить данные для каждой подсказки и в зависимости от типа, показывать или нет.
Замучился :(

Пример https://jsfiddle.net/obx96w7t/8/

Код:
<script src="https://api-maps.yandex.ru/2.1/?lang=ru-RU" type="text/javascript"></script>
<input id="suggest" type="text" name="m" value="">
ymaps.load(function () {

var suggestView = new ymaps.SuggestView('suggest', {
results: 5,
provider: {
suggest: (function (request, options) {


return (suggestView.state.get('open') ? ymaps.suggest(request) : ymaps.vow.resolve([])).then(function (res)
{


if (res.length > 0) {
// Перебираем подсказки
$.map(res,function( item, i ) {

console.log(item.value);

// Передаем на получение данных по адресу
$.when(geocode(item.value)).then(function(data) {

console.log(data);

})

})
}

suggestView.events.fire('requestsuccess', {
target: suggestView,
});
return res;
})
})
}
});

suggestView.state.set('open', true);


function geocode(request) {

return ymaps.geocode(request, {results: 1})
.then(
function (res) {

var firstGeoObject = res.geoObjects.get(0),
// Координаты геообъекта.
coords = firstGeoObject.geometry.getCoordinates(),
// Область видимости геообъекта.
bounds = firstGeoObject.properties.get('boundedBy');

if (firstGeoObject) {

return firstGeoObject;

}


});

};


});