Клуб API Карт

Обновление координаты точки и координаты центра карты по таймеру через AJAX

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

Здравствуйте, подскажите пожалуйста как можно динамически менять координату точки? По json-у получу я её, а как сменить свойство объекта?

Карту создаю примерно так:

ymaps.ready(init);
function init() {
    var myMap = new ymaps.Map("map", {
                center:[55.76, 37.64],
                zoom:10
            }),
            myPlacemark = new ymaps.Placemark([55.8, 37.6]);
    myMap.geoObjects
            .add(myPlacemark)
}


Хочу раз в минуту забирать через json координату и обновлять центр карты и положение точки в соответствии с этой координатой. В js я особо не силён.

Благодарю за любые подсказки. 

 

2 комментария
Алексей Yarrr!
28 января 2016, 03:59

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/geometry.Point.xml

Пример:

var point = new ymaps.geometry.Point([30, 50]); //... point.setCoordinates([20, 40]);

соотв., гденибудь внутри скоупа функции init. в конце, например:

$.ajax('/newcoord.json', function(xhr, r){ // не уверен, на счет правильности параметров

  myPlacemark.geometry.setCoordinates(r.newCoord); // ну или как забирать будете.

});

Алексей Yarrr!
28 января 2016, 03:59

а раз в минуту - заверните в замыкание и запускайте через setTimeout или setInterval

на эту тему важно помнить, что вкладка может быть открыта, и тогда пользователь все равно не увидит изменений, а процессор вы его отжирать будете. имейте ввиду.

setTimeout(60000, function(){ // все время забываю, сколько единиц с этих секундах... либо 60000 или 60000000

  ... $.ajax ...

    point.setCoordinates([]);

});