Клуб API Карт

Проблема с ymaps.templateLayoutFactory.createClass в 2.1

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

 

var sprite= ymaps.templateLayoutFactory.createClass('<div style="margin-left: -22px; margin-top: -34px; line-height: 36px; text-align: center; width: 44px; height: 44px; background: url(/img/map_points_sprite.png) {{ options.iconImageClipRect[0][0] }} {{ options.iconImageClipRect[0][1] }}  no-repeat"> {{ properties.iconContent }} </div>'),

 

ymaps.option.presetStorage.add('order#startPointNormal', {

iconLayout: sprite, //'default#imageWithContent',

iconImageClipRect: [xy(0,0), xy(1,1)],

iconShape: {

 type: 'Rectangle', // может быть переделать на круг

 coordinates: [[-22, 6], [22, -34]]

        }

});

 

в templateLayout options.iconImageClipRect[0][0] и options.iconImageClipRect[0][1] оказываются пустыми. Что делаю не так, подскажите, пожалуйста.

3 комментария

ссылка?

Замените:
{{ options.iconImageClipRect[0][0] }} {{ options.iconImageClipRect[0][1] }}
на:
{{ options.imageClipRect[0][0] }} {{ options.imageClipRect[0][1] }}
либо укажите полностью:
{{ geoObject.options.iconImageClipRect[0][0] }} {{ geoObject.options.iconImageClipRect[0][1] }}

Это связано с нашей системой префиксирования опций. Мы отразим этот момент в документации.
Анатолий Новоселов
27 января 2016, 23:40

Спасибо большое, очень помогли, есть один нюанс:

 

geoObject.options.iconImageClipRect

 

внутри templateLayout становится строков с разделителем "," (0,44,44,88). options.imageClipRect.split(",")[0] не выполняется - возвращается пустая строка

сделал так:

 

ymaps.option.presetStorage.add('order#startPointNormal', {

  iconLayout: sprite, //'default#imageWithContent',

  positionX: delta(0),

  positionY: delta(1),

  iconShape: {

    type: 'Rectangle',

    coordinates: [[-22, 6], [22, -34]]

  }

});

 

и обращаются к positionX, positionY