@iziakatzman

Как изменить иконку placemark в метках уже поставленных на карте?

Суть такова. У меня через каждые 10 секунд выполняется ajax-запрос, который вытаскивает из БД координату текущего местоположения объекта. Все координаты, которые я вытаскиваю я храню в myCollection типа GeoObjectCollection. Вот часть кода:

myPlacemark = new ymaps.Placemark([data.lat, data.lon], { 
                        content: counter, 
                        hintContent: 'Собственный значок метки'
                    }, {
                        iconLayout: 'default#image', // тип макета
                       //iconImageHref: 'http://api.yandex.ru/maps/doc/jsapi/2.x/examples/images/myIcon.gif',
                        //iconImageSize: [30, 42], // размеры метки
                        //iconImageOffset: [-3, -42]
                    });

myCollection.add(myPlacemark);
myMap.geoObjects.add(myCollection);


Ну и мне захотелось, чтобы стандартный маркер был только у текущего положения объекта, т.е. когда у извлекаю координаты новой точки и отображаю ее на карте, все предыдущие метки должны менять свои иконки. Какой я сейчас вижу выход: перед отображением предыдущей точки очищать myCollection и отрисовывать их заново, но уже с другими иконками, а потом снова менять url иконки для текущей позиции. Если есть более грамотной способ это реализовать - умоляю им поделиться.
Минус очистки всего myCollection в том, что придется заводить какой-нибудь запасной массив с координатами, чтобы потом по нему восстановить новую коллекцию.
  • Вопрос задан
  • 1749 просмотров
Пригласить эксперта
Ответы на вопрос 1
forgotten
@forgotten
Руководитель разработки API Яндекс.Карт
Например, завести две коллекции — одна для последней иконки, вторая для остальных. При добавлении новой иконки сначала предыдущая переносится в другую коллекцию.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы