@smoln

Как показать информацию при клике на метку яндекс карты?

Добрый день, помогите решить вопрос с выводом информации при клике на метку
Вот код

function init() {
        // Создаем карту
        myMap = new ymaps.Map("map", {
			center: [53.9,27.5667],
                zoom: 9,
            controls: [
                'zoomControl'
            ],
            zoomMargin: [20]
        });

        for (var i = 0; i < shopList.length; i++) {

            // Добавляем название города в выпадающий список
            $('select#cities').append('<option value="' + i + '">' + shopList[i].cityName + '</option>');

            // Создаём коллекцию меток для города
            var cityCollection = new ymaps.GeoObjectCollection();

            for (var c = 0; c < shopList[i].shops.length; c++) {
                var shopInfo = shopList[i].shops[c];

                var shopPlacemark = new ymaps.Placemark(
                    shopInfo.coordinates,
                    {
                        hintContent: shopInfo.name,
                        balloonContent: shopInfo.name,   
						WarehouseId: shopInfo.WarehouseId
                    }, 
					{

                         preset: 'islands#redDotIcon'

                   }
                );

                if (!placemarkList[i]) placemarkList[i] = {};
                placemarkList[i][c] = shopPlacemark;

                // Добавляем метку в коллекцию
                cityCollection.add(shopPlacemark);

            }
	

            placemarkCollections[i] = cityCollection;

            // Добавляем коллекцию на карту
            myMap.geoObjects.add(cityCollection);

        }




        $('select#cities').trigger('change');

		myMap.geoObjects.events.add('click', function (e) {

			console.log(shopPlacemark.properties.get('balloonContent'));  

				});

	
			

    }


Пытаюсь при клике вывести информацию по вот код

myMap.geoObjects.events.add('click', function (e) {

			console.log(shopPlacemark.properties.get('balloonContent'));  

				});

сейчас при клике на любую метку показывается информация по самой последней метке
Если я делаю:
console.log(myMap.geoObjects.properties.get('balloonContent')); - ошибка
console.log(e.get('balloonContent')); - undefined

как заставить это работать?
  • Вопрос задан
  • 1232 просмотра
Решения вопроса 1
@smoln Автор вопроса
Посмотрев получше документацию, пришле к решению, сначал через таргет получаем ссылку на объект с параметрами, потом вытаскиваем параметр который нужен
var target = e.get('target');
	console.log(target.properties.get('WarehouseId'));
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sinneren
@sinneren
ну как бы логично что последнее, если показываем shopPlacemark
https://yandex.ru/dev/maps/jsbox/2.1/geoobject_events
https://yandex.ru/dev/maps/jsbox/2.1/event_properties
тут исчерпывающие ответы и примеры
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы