Клуб API Карт

Подпись к своему маркеру

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

 

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

 

var myPlacemark = new ymaps.Placemark($cords, {
balloonContent: $content,
iconContent: name
}, {
iconLayout: "default#imageWithContent",
iconImageHref: "getAssetManager()->getAssetUrl($asset, "img/single/marker-standart.png")?>",
iconImageSize: [30, 30],
iconImageOffset: [-12, -40],
hideIconOnBalloonOpen: false,
balloonOffset: [0, -50],
});:

 

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

 

Заранее всех благодарю.

 

 

 

 

 

 

 

 

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

сделайте свой макет иконки с нужной вёрсткой и передайте его в опцию iconLayout

https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/templateLayoutFactory-docpage/

К сожалению таким образом сделать не выйдет. Так как мне так же нужен по клику всплывающая информация о заведении. То есть мне нужна и подпись и при клике окно с подробной информацией. А templateLayoutFactory я пробовал и понял что в данном случае у меня просто переопределен всплывающий балун....

Иконка так же может иметь свой макет, как и балун.

Эти вещи никак между собой не связаны

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

Возможно, Вам подойдет один из стандартных пресетов StretchyIcon 
Вот пример: https://tech.yandex.ru/maps/jsbox/2.1/placemark
В противном случае, для иконки надо задать свой iconLayout.

К сожалению стандаратные не подойдут исходя из набросков дизайна. iconLayout попробую еще раз хотя в прошлый раз у меня не получилось нормально его оформить....

создайте пример на jsfidlle (можно прямо из песочницы сделать экспорт), и выложите ссылку в посте. Мы поможем поправить

Создал на https://jsfiddle.net/w6L6odq7/4/

Оформить свой маркер получилось с помощью iconLayout. Но сейчас проблема в том что при клике на иконку не срабатывают эвенты. То есть balloonContent не открывается. Подскажите в чем причина?

 

 

Вы забыли задать iconShape. Посмотрите, как это сделано в примере.

 

Благодарю, но я уже разобрался.

Задаю свой iconLayout но тогда перестают работать эвенты при клике на иконку. Как с этим быть?

var squareLayout = ymaps.templateLayoutFactory.createClass('$this->getAssetManager()->getAssetUrl($asset, "img/single/marker-hover.png")?>">'+name+'');

var myPlacemark = new ymaps.Placemark($cords, {

}, {
iconLayout: squareLayout,
   
});

myPlacemark.events
    .add("balloonopen", function (e) {

        // действие
    }).add("mouseenter", function (e) {

       // действие

    }).add("mouseleave", function (e) {

      // действие

    });


myCollection.add(myPlacemark);

 

 

Всеволод Шмыров
10 августа 2016, 14:08
Кстати в апи уже есть возможность задавать метки с подписями
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/option.presetStorage-docpage/