Клуб API Карт

Эмуляция клика по метке на карте

Пост в архиве.
dpi.wasp
28 марта 2013, 19:06

Есть код, написанный для события по клику на определенную метку на карте. 

placemark.events.add('click', function (e) {...})

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

6 комментариев
placemark.events.fire('click', {
   position: [pageX, pageY]
});
Вместо pageX, pageY подставить позицию клика

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/event.Manager.xml#fire

placemark.events.fire('click', {

    coordPosition: placemark.geometry.getCoordinates(),

    target: placemark

});

Работает почти так, как надо, спасибо!
Но сейчас фокус и зум на метку не перемещаются. Есть ли возможность сделать и автофокус на нее? 

автофокус всмысле установить центр карты по метке?

myMap.setCenter(placemark.geometry.getCoordinates());

myMap.events.add('click', function (e)
{
if (needed_point)
obj_collection.removeFromMap(myMap);
//смотрим на координаты щелчка
//var coords = e.get('coordPosition');
needed_point = new ymaps.Placemark(coords, {},{preset: 'twirl#blueStretchyIcon', draggable: false});
obj_collection = ymaps.geoQuery(needed_point).addToMap(myMap);
console.log(coords);
//находим ближайшую точку мкада
var closestObject = arPlacemarksRez.getClosestTo(coords);
//составляем маршрут между двумя точками
ymaps.route([
closestObject.geometry.getCoordinates(),
coords
]).then(function (route) {
//myMap.geoObjects.add(route);
//пишем дистанцию на метке
var distance = Math.round(route.getLength()/1000);
needed_point.properties.set({iconContent: distance});
});
});


меняю на 


myMap.events.fire('click', function (e)
{
if (needed_point)
obj_collection.removeFromMap(myMap);

//смотрим на координаты щелчка
//var coords = e.get('coordPosition');
needed_point = new ymaps.Placemark(coords, {},{preset: 'twirl#blueStretchyIcon', draggable: false});
obj_collection = ymaps.geoQuery(needed_point).addToMap(myMap);
console.log(coords);

//находим ближайшую точку мкада
var closestObject = arPlacemarksRez.getClosestTo(coords);

//составляем маршрут между двумя точками
ymaps.route([
closestObject.geometry.getCoordinates(),
coords
]).then(function (route) {
//myMap.geoObjects.add(route);

//пишем дистанцию на метке
var distance = Math.round(route.getLength()/1000);
needed_point.properties.set({iconContent: distance});
});


});


и ничего не происходит, метка не появляется
Обновлено 19 сентября, 00:14
s3420,
 технические вопросы лучше задать на Stack Overflow: https://ru.stackoverflow.com/questions/tagged/yandex-maps-api

Там вы сможете собрать интерактивный пример кода и оперативно получить совет.