Клуб API Карт

e.get('wayPoint') возвращает undefined

DrBug
21 октября 2014, 02:15

Доюрой ночи.

есть вопрос...

Создаю multiRoute. потом говорю

route.editor.start({

                    addWayPoints: true,

                    removeWayPoints: true

                });

Затем пишу

route.editor.events.add('waypointadd', function (e) {

                    var point = e.get('wayPoint');

                });

Но point почему-то point undefined.

Не подскажите в чем проблема?

На самом деле мне нужно поменять iconImageHref у добавленной точки на карте. Я думал сделать это по событию добавления. Но получить добавленную точку никак не могу. Спасибо.

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

Добрый день.

Проблема в том, что у события waypointadd нет поля wayPoint. Это событие происходит до того как с сервера пришли данные и маршрут перестроился (и появилась новая путевая точка).

Это событие происходит в момент добавленя координат новой путевой точки в набор опорных точек мультимаршрута.

Отображения точек появляются позже, после того как приходит ответ с сервера.

Вам нужно слушать у мультимаршрута событие update. Оно происходит в момент перестроения маршрута. И по нему задавать путевым точкам параметры отображения.

Если вы хотите чтобы путевые точки отображали произвольную картинку, то им нужно еще заменять макет, т.к. их макет по умолчанию картинки не отображает и опцию iconImageHref он просто проигнорирует.

Код задания картинки для последней метки выглядит примерно так 

 

multiRoute1.events.add("update",function () {            var wayPoints = multiRoute1.getWayPoints();            wayPoints.get(wayPoints.getLength() - 1).options.set({                'iconLayout': 'default#image',                'iconImageHref': 'http://www.iconeasy.com/icon/64/Holiday/Happy Xmas/Snow.png'            });        });

 

 

 

 

Спасибо огромное!!!

Вы даже не представляете, как я вам благодарен!!!