Клуб API Карт

API 2.0 - Получение доступа к стилю объекта GeoObject, а также содержимому балуна

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

Как можно поменять стиль метки и как получить доступ к содержимому балуна для метки в АПИ 2.x

Пытаюсь поменять стиль для меток на карте, которые я загружаю

ymaps.geoXml.load(url).then(function (res) {
    res.geoObjects.each(function (item) {
        item.options.preset = 'twirl#houseIcon';
        myMap.geoObjects.add(item);
    });
}

Но так не выходит. В firebug-e смотрю, а у объекта item.options нет свойства preset.

Если использовать debug версию библиотеки, то я заметил, что есть такое свойство item.options._options.preset и код item.options.preset = 'twirl#houseIcon'; работает.

Аналогичный вопрос про доступ к содержимому балуна для метки.

в debug версии я могу обратиться: item.properties._data.name и item.properties._data.balloonContentBody

Как понимаю item.options._options и item.properties._data приватные свойства и в релиз версии подвергаются оптимизации и меняют свои названия.

Поидее делаю что-то не так. Как можно поменять стиль метки и как получить доступ к содержимому балуна для метки?

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

с опциями требуется работать через get\set методы.

Если вы даже разберете как они там устроены и будете писать значения в конечные переменные - ничего не перестроится, так как опции никому не скажут что что-то в них изменилось.

а можно пример как работать?

вместо

item.options.preset = 'twirl#houseIcon';

нужно

item.options.set('preset', 'twirl#houseIcon');

или 

item.options.set({preset: 'twirl#houseIcon'});