Клуб API Карт

Как методом ajax вызвать изменение в карте (позиционирование центра, вывода подсказки и пр.) по координатам полученым ymaps.geocode('Адрес')?

star.animator
16 января, 20:26

Гуру программирования, не пинайте, наберитесь терпения и объясните 100500-й раз самоучке. Делаю так:

<div id="map" ></div>

<script>

var address = 'Ульяновская область, Ульяновск, р-н Заволжский, пр-т Академика Филатова, 7';

        ymaps.ready(init(address));

        function init(address) {

            return function () {

               
                var geocoder = ymaps.geocode(address);

// ...Здесь все по документации, трудностей нет...//
                  }

      }
    </script>

После загрузки страницы карта позиционируется там где нужно, но как менять её состояние методом ajax уже сутки не могу понять. Костыль по событию сделал такой: 1) удаляю контенер с id="map". 2) создаю его снова в том же месте. 3) вызываю init(address) с новой строкой. 4) Появляется карта с новым позиционированием.

Ёжику понятно что разработчиками придумано как это делать без удаления контейнера и новой инициализации. Подскажите кто знает как заменить "костыль на здоровую ногу"? Лучше ссылки на рабочий пример с комментариями...

1 комментарий
Подписаться на комментарии к посту
Победил:


<div id="myMap" ></div>


<script>


ymaps.ready(init);


var myMap;
function init () {
myMap = new ymaps.Map(
'map',
{
center: [55.76, 37.64],
// Масштаб.
zoom: 10

}
);
}


function setCenter (coordinates) {
myMap.setCenter(coordinates);
}


//Далее по задумке пользователь на сайте выбирает предложенный адрес

//или пишет его сам



//Возникло событие, в результате которого получил строку с адресом t, далее по этому
//событию следующий код



var geocoder = ymaps.geocode(t);
        geocoder.then(
               function (res) {
               var co = res.geoObjects.get(0).geometry.getCoordinates();
                setCenter (co);
            });


//Таким образом пользователь может лицезреть на карте место которое он выбрал


</script>