Клуб API Карт

Прямое геокодирование api 2.0, передача координат.

Пост в архиве.

Не могу понять, как реализовать вывод var gps из функции(res), чтобы показывать карту с требуемыми значениями согласно исполненному условию.

 

 

if (gps==""){

var myGeocoder = ymaps.geocode(gorod_adress);

myGeocoder.then(

    function (res) {

         var gps = res.geoObjects.get(0).geometry.getCoordinates();

            return gps;

         });

}else{

alert('Координаты объекта заданы: '+ gps)

} //else end

 

myMap = new ymaps.Map ("map", {

center: gps,

        zoom: 10

        });

 

3 комментария

геокодирование - асинхронный процесс (так как там http-запрос),

результат будет доступен только внутри обработчика then

Аркадий Андреевич
28 января 2016, 03:02

Значит как бы не тужился, ничего не выйдет. Эх...

Спасибо за ответ! 

Ну почему же не выйдет

просто в javascript всё несколько иначе чем, например, в пэхапэ

Вы можете создать карту внутри обработчика then

 

var myGeocoder = ymaps.geocode(gorod_adress);

myGeocoder.then(

    function (res) {

         var gps = res.geoObjects.get(0).geometry.getCoordinates();

        myMap = new ymaps.Map ("map", {

            center: gps,

            zoom: 10

        });

         });