Клуб API Карт

Найдено на тему «iconLayout»:
Как распознать, из какой части шаблона иконки метки пришел клик?
Melody Nelson
16 октября 2017, 15:30

Есть кастомный шаблон иконки, при клике на определенный элемент которого хотелось бы игнорировать стандартный обработчик клика по этой иконке. Как их различить?

В objectManager.objects.events.add("click", function (e){}) внутри e можно найти target (e._sourceEvent.originalEvent.domEvent.originalEvent.target), но это всегда ".ymaps-2-1-55-events-pane", перехватывающий событие. Возможно ли как-то получить элемент шаблона, по которому кликнули, в обход events-pane?

2 комментария
event,templateLayoutFactory,iconLayout,click
Задать iconImageHref с классом
Удалённый пользователь
25 апреля 2017, 11:50

API 2.1

Получаю координаты через геокодер и там же создаю новую метку. 

ymaps.geocode('г. Одесса, ул. Малая Арнаутская, 62', {results: 1}).then(function (res) {
  res.geoObjects.options.set('iconLayout', 'default#image');
  res.geoObjects.options.set('hasBalloon', false);
  res.geoObjects.options.set('iconImageHref', 'https://static.weedmaps.com/img/map-loader-21e0b61e61-production.svg');

  myMap.geoObjects.add(res.geoObjects);

});

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

var commonContent = ymaps.templateLayoutFactory.createClass('<div class="icn_content">$[options.iconImageHref]</div>');
	
ymaps.geocode('г. Одесса, ул. Малая Арнаутская, 62', {results: 1}).then(function (res) {
  res.geoObjects.options.set('iconLayout', commonContent);
  res.geoObjects.options.set('hasBalloon', false);
  res.geoObjects.options.set('iconImageHref', 'https://static.weedmaps.com/img/map-loader-21e0b61e61-production.svg');
		
  myMap.geoObjects.add(res.geoObjects);
});

и уже ничего не выводит. 

Пробовал и $[options.iconImageHref], и $[properties.iconImageHref]

1 комментарий
templateLayoutFactory,iconLayout,iconImageHref
Надпись на кастомной метке
SagaranoMail
12 апреля 2017, 19:13

Здравствуйте!

Такая проблема: при установленном preset (для использования кастомной картинки) метка игнорирует свойство iconContent

Пример: https://jsfiddle.net/95h9mgjr/4/

Установленный в примере iconContentLayout роли не играет, без него то же самое. Возможно нужно переопределить iconLayout через templateLayoutFactory? Если да, то есть пример?

2 комментария
custom icon,Placemark,iconLayout,Preset
Разное отображение макета метки в разных масштабах
Иван
1 октября 2015, 10:20

Добрый день! Подскажите, как мне настроить разное отображение меток в зависимости от масштаба. Метки добавляются через RemoteObjectManager. Затем создаётся свой макет для меток и применяется при добавлении:

var placeLayout = ymaps.templateLayoutFactory.createClass( '<div class="placemark_layout_container">' +

  '<div class="place_layout place_{{properties.iconImageClass}}"></div>' +

  '<div class="title_layout title_layout_place">{{properties.title}}</div>' +

  '</div>' );

remoteObjectManager.objects.events.add('add',function (e) {

  remoteObjectManager.objects.setObjectOptions(e.get('objectId'),{

    iconLayout: placeLayout,

    iconShape: {

      type: 'Rectangle',

      coordinates: [[-9,-30], [9,0]],

    },

  });

});

Пробовал заменять {{properties.title}} на переменную, значение которой менять в зависимости от myMap.getZoom(). Но метки, кажется, кешируются и показывается только изначальный режим отображения.

19 комментариев
макет метки,метка,API 2.1,iconLayout