Клуб API Карт

Обвертка geocode в функцию

Spavel74
9 октября 2012, 15:14

 

var myGeocoder = ymaps.geocode("Москва");
myGeocoder.then(
    function (res) {
       var point = res.geoObjects.get(0);  
    }
);

 

Есть возможность обвернуть в функ. результат = point ? 

5 комментариев
Подписаться на комментарии к посту

я ничего не понял

что куда и зачем обернуть?

function FunMyGeocoder(content){                  var myGeocoder = ymaps.geocode(                          content, {                              /* Опции поиска:                                 - область поиска                              boundedBy: map.getBounds(), */                              // - искать только в этой области                              strictBounds: false,                              // - требуемое количество результатов                              results: 1                          }                      );                  /* После того, как поиск вернул результат, вызывается                     callback-функция */                  myGeocoder.then(                      function (res) {                          var point = res.geoObjects.get(0);                          //return point.geometry.getCoordinates();                      }                  );}

Вижу обернули.

а что не получается?

как вернуть

 point.geometry.getCoordinates(); от функции  FunMyGeocoder

return в  then. Я так понимаю это не return для FunMyGeocoder

невозможно, потому что да, не ее return

и во вторых там асинхронный вызов (его в любом случае нельзя вернуть)

 

можете написать так

function myGeocoder(request, callback) {

    ymaps.geocoder.then(function (res) {

        callback(res.geoObjects.get(0))

    });

}

 

и тогда такой вызов

myGeocoder('Москва', function (result) {

    // тут чтото с результатом делаем

});