Клуб API Карт

Как получить координаты балунов?

investtocar
27 января 2012, 16:10

есть карта с нанесенными на нее точкамис балунами как по клику на балуне узнать его координаты с сывовдом их в форму

Я использую вот такую функцию

YMaps.Events.observe(placemark, placemark.Events.Click, function (map, mEvent) {
  document.getElementById(\'geox\').value = placemark.getCoordPoint().getX() ;
  document.getElementById(\'geoy\').value = placemark.getCoordPoint().getY() ;

  }) ;

 

Но почему-то передаются координаты только одного балуна остальные не передаются в чем моя ошибка?

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

передаются координаты того, который вы слушаете

в вашем случае надо слушать все

не подскажешь как это сделать? уже голову сломал

 

У вас где-то ошибка в коде...
Желательно посмотреть весь код создания точек и размещения их на карте.
А еще желательней увидеть урл с примером.

так же как и с этим плейсмарком

Только проще их все положить в группу (см. группировка объектов)

а у группы методом foreach перебрать все плэйсмарки и повесить на них обработчики

 

var group = new YMaps.GeoObjectCollection();
group.add([
    new YMaps.Placemark(new YMaps.GeoPoint(37.518234,55.708937)),    ...
    new YMaps.Placemark(new YMaps.GeoPoint(37.514146,55.722294))
]);
group.forEach(function (placemark) {
    YMaps.Events.observe(placemark, placemark.Events.Click, onPlacemarkClick) ;
});function onPlacemarkClick (placemark) {    var point = placemark.getGeoPoint(),    $ = YMaps.jQuery;       $("#geox").val(point.getX());    $("#geoy").val(point.getY());}

попробую изучить как это делается

 

Спасибо всем за советы

 

 

Cпасибо за решение. Именно и мне нужно было такое решение.
Только один момент не могу решить.

Как сделать, чтобы при клике на метку не открывался балун (по умолчанию открывается пустой балун)?

Конструктору метки можно передать опции вторым параметром

 

var group = new YMaps.GeoObjectCollection(),     placemarkOptions = { hasBalloon: false };
group.add([
new YMaps.Placemark(new YMaps.GeoPoint(37.518234,55.708937), placemarkOptions),...
new YMaps.Placemark(new YMaps.GeoPoint(37.514146,55.722294), placemarkOptions)]);

Большое спасибо за помощь.
Очень помогло.