Клуб API Карт

Найдено на тему «templateLayoutFactory»:
Как распознать, из какой части шаблона иконки метки пришел клик?
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
Кастомный балун: не работает autoPan
Виктор Свириденко
11 октября 2017, 10:18

Салют. Случился затык, прошу знатоков подсказать, куда копать дальше. Суть проблемы: не работает autoPan у балунов, использующих кастомный макет, созданный с помощью фабрики макетов.

Пример: https://jsfiddle.net/36938ftz/.

После первого запуска карта смещается к открывшемуся балуну — это ожидаемо. Теперь раскомментируйте строку:

//layout: layout

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

Баг или фича? В документации для конструктора Balloon (https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Balloon-docpage/) опция autoPan — по умолчанию  true, и я её не меняю. Со стандартным балуном всё прокатывает. О несовместимости опций autoPan и layout — ни слова. Принудительный вызов autoPan не даёт результата, даже через then().

1 комментарий
Balloon,templateLayoutFactory,autoPan
Задать 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
Как упровлять мобилным отоброжением Балуна
Удалённый пользователь
4 июня 2016, 09:28

делаю приложения на фонгапе с яндекс картами

задача состоит в том чтобы баул открывался снизу экрана в большенстве случиев а не только когда расщирения 350 на 350

4 комментария
содержимое балуна,templateLayoutFactory,ballon
Как получить доступ к вложенному в метку HTML элементу
kinordm
29 октября 2015, 12:10

Вопрос в следующем: есть метка, которая создана с помощью templateLayoutFactory, в ней есть <div> с определенным классом. Мне нужно, чтобы при наведении (клике/любом событии) на эту метку я мог получить доступ к этому классу (например изменить его css).

 

Частично код прилагаю:        

var str = '<div' + style + ' class="ya-circle ya-circle-' + type + '">' + balloonTypeFunction(size, data) + '</div>';                       
var circleLayout = ymaps.templateLayoutFactory.createClass(str);
                        
                        var circlePlacemark = new ymaps.Placemark(
                            coords, {
                            }, {                                
                                iconLayout: circleLayout,
                                iconShape: {
                                    type: 'Circle',
                                    coordinates: [0, 0],
                                    radius: size / 2
                                }
                            }
                        );
                        map.geoObjects.add(circlePlacemark);

 

кастомизация,метка,templateLayoutFactory
layout.templateBased.Base не работающий теплейт в документации
mogafk2016
16 октября 2015, 19:41

https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/layout.templateBased.Base-docpage/

Тут пример (внизу)

// Создадим метку и зададим ей круглую интерактивную область. 
var
MyLayoutClass = ymaps.templateLayoutFactory.createClass('<div class="imageIcon">{{name}}</div>'),
myPlacemark = new ymaps.Placemark([22, 34], {name: 'Кафе Маяк'}, {
iconLayout: MyLayoutClass,
iconShape: {type: 'Circle', coordinates: [0, 0], radius: 20}
});
Не верно отрабатывает. В шаблоне необходимо {{properties.name}} иначе ничего не выводится.
1 комментарий
API 2.1,templateLayoutFactory
Карты показываются через раз (ошибка F.templateLayoutFactory is undefined)
Баранова М.
9 июня 2015, 17:40

На странице сейчас выводится 7 карт. Все разные (код на интерактивные карты не повторяется).

Вывод идет по табам (вкладкам), у каждого таба своя карта.

При загрузке (обновлении) страницы карты то показываются все, то не показываются (может одна только).

Ошибка на странице http://rost-holding.ru/company-group/contacts/

Когда не показываются, в console пишет ошибку

Uncaught TypeError: Cannot read property 'createClass' of undefined
api-maps.yandex.ru/:1 Uncaught TypeError: Cannot read property 'createClass' of undefined 


https://api-maps.yandex.ru/services/constructor/1.0/js/?sid=Jp7ByWuSKyLqTOsVDig16PAgSSkhZycF&height=330

 

 

 

Uncaught TypeError: Cannot read property 'createClass' of undefinedv @ api-maps.yandex.ru/services/constructor/1.0/js/?sid=KDvrdVmS0VQt_kFJSIqn9RGXnqlleyzU&width=90%&height=330:1(anonymous function) @ api-maps.yandex.ru/services/constructor/1.0/js/?sid=KDvrdVmS0VQt_kFJSIqn9RGXnqlleyzU&width=90%&height=330:1

 

windows 7
Chrome, Firefox

8 комментариев
createClass,templateLayoutFactory,несколько карт