Клуб API Карт

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

trol-home
30 сентября 2014, 11:52

 

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] }}

Это связано с нашей системой префиксирования опций. Мы отразим этот момент в документации.

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

 

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