Клуб API Карт

Получить свойство placemark по клику

kriukoff.leha
9 сентября 2013, 13:13

Привет!

Создается placemark-и. По клику надо записать в переменную значение id, например.

Я пытаюсь делать так, жирным выделен интересующий фрагмент

В чем ошибка?

var geolocation = ymaps.geolocation;
            // координаты
            coords = [geolocation.latitude, geolocation.longitude];
            myMap = new ymaps.Map('map', {
                center: [<?php echo $latitude,',',$longitude; ?>],
                zoom: 14
            });
       
        myMap.events.add('click', function (e) {      
            
                var position = e.get('coordPosition');
                placemark=new ymaps.Placemark(position, {
                    // Свойства.
                    // Содержимое балуна
                    balloonContent: '',
                    type:clicktype,// переменная типа int. значение передается!
                    id:marksarr.length
                }, {
                    // Опции.
                    // Стандартная фиолетовая иконка.
                    preset: clickmark//
                });
                placemark.events.add('click', function () {
                    alert(this.properties.get('id'));
                    markid=placemark.option.get('id');
                });
              }
        });

 

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

1. Чтобы this указывало на ваш placemark, нужно явно передать его 3-м параметром в метод add

На самом деле лучше использовать объект-событие (параметр функции обработчика)

function (e) {

    console.log(e.get('target').properties.get('id'));

}

2. У экземпляра метки нет поля option

А как по клику получить текущий placemark если у меня например 20 балунов и по клику на любой надо получить его id. Есть какой то пример киньте ссылку. Как кликнуть и как id получить из одного я разобрался. Немогу с несколькими работать ни где немогу найти как отловить текущий при клике.

Всё блин разобрался. Лег поспал и все прошло. Для тех кто затупил также как и я e.get('target') это и есть обьект текущего балуна.