Клуб API Карт

Как поймать событие "наведение курсора на объект Route" ?

yMAPStest
29 января 2012, 17:35

Привет всем.

Задача такая: построить маршрут и при наведении на него показывать балун с информацией о каждом участке дороги.

 

В примерах нашел только, как получить набор Route из Router.

Может есть пример для моей задачи?

 

Спасибо

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

YMaps.Route это по сути обычная полилиния + несколько дополнительных методов

события там те же и ловить их также

 

YMaps.Events.observe(route, route.Events.MouseEnter, function (route, e) {
    ...
});

Написан такой код:

 

        YMaps.Events.observe(routeByGeoPoints, routeByGeoPoints.Events.Success, function() {           
            var route = [];
            for (var i=0; i                route[i] = routeByGeoPoints.getRoute(i);

                YMaps.Events.observe(route[i], route[i].Events.MouseEnter, function (route, e) {
                    alert(route.getDistance());
                });
            }
        });

Но при наведении на маршрут не срабатывает.

Может так делать нельзя, как я делаю? (не силен в JS)

там есть тонкость что эти возвращаемые YMaps.Route не интерактивны по-умолчанию

 

        YMaps.Events.observe(router, router.Events.Success, function(router) {                                                                                                                                                                  for (var i=0; i < router.getNumRoutes(); i++) {                                     var route = router.getRoute(i);                                                     route.setOptions({ interactive : YMaps.Interactivity.INTERACTIVE });                                             YMaps.Events.observe(route, route.Events.MouseEnter, function (route, e) {                    alert(route.getDistance());                                                 });                                                                         }                                                                           });