Клуб API Карт

Получение данных метки при клике по ней

Пост в архиве.

Добрый день!

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

 

Постараюсь раскрыть свою проблему чуть подробнее:

У меня есть список магазинов, у каждого магазина свой id. Для каждого магазина я создаю метку, и все созданные метки добавляю в коллекцию. Мне нужно где-то в метке сохранять id магазина, чтобы при клике по метке получать сохраненный у нее id магазина и работать с этим id (отсылать ajax-запрос на вывод данных в баллун и куча других команд, которым необходим id магазина). 

 

 

7 комментариев

А вот это статья в блоге Вам не поможет?

Раскрою суть, - у геообъектов есть поле properties

которое представляет собой менеджер данных, данные могут быть абсолютно под любыми ключами.

Вы можете добавлять их при создании геообъекта, передавая объект с данными вторым параметром в конструктор, либо уже после его создания, используя методы менеджера данных, вызывая их у поля properties геообъекта, также их можно получать при клике, и других событиях из того же поля методами get/getAll

Екатерина, Дмитрий, благодарю за помощь.

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

После таких подробных документаций мне тяжело понимать документацию Яндекса. Поэтому у меня столько вопросов и неграммотного кода.

Все, что я сделал на яндекс картах, я изучал по примерам.

 

И сейчас, просмотрев ссылку Екатерины на пример я сделал следующее:

 

  // Создаем метку:  myPlacemark = new ymaps.Placemark([], {                        id:''                }, {});  shopCollection.add(myPlacemark);shopCollection.events.add('click', clickOnPlacemark);function clickOnPlacemark(e){  var placemark = e.get('target');  var id = placemark.properties.get('id'); // Получаем данные для запроса из свойств метки.  console.log(id);}

Это работает. 

 

 

myPlacemark[id] = new ymaps.Placemark(coord,
        {   //сдесь любые параметры
            myid:id,//твой ид
            body : 'Загрузка...',
            change:0
        },
        {
             //настройки балуна
        });

myPlacemark[id] - при такой записи у нас не полуится много мусора?

хз, я не прошу так делать, просто показывал где id писать...

Понял вас. Спасибо