Есть XML, в нем данные такого типа:
<gml:name>Имя </gml:name>
<gml:metaDataProperty>
<ymaps:AnyMetaData>
<url>"someurl.ru"</url>
<image>//someImage.jpg</image>
</ymaps:AnyMetaData>
</gml:metaDataProperty>
<gml:Point>
<gml:pos>48.688514 15.758255</gml:pos>
</gml:Point>
</ymaps:GeoObject>
На основе этих данных, при помощи шаблона формируется содержимое балуна:
<repr:template>#balloonTemplate</repr:template>
</repr:balloonContentStyle>
</repr:Style>
<repr:Template gml:id="balloonTemplate">
<repr:text><![CDATA[
<div style="font-size:15px;">
$[name]
<a href="$[metaDataProperty.
<img src="http:$[metaDataProperty.AnyMetaData.image]" alt="avatar" />]]></repr:text>
</repr:Template>
</repr:Representation>
И все это дело загоняется в кластер:
clusterer = new ymaps.Clusterer();
// Настройки кластера
clusterer.options.set({
margin: [20],
gridSize: 40,
minClusterSize: 2
});
url = "http://SomeUrl.ru/SomeXML.xml";
ymaps.geoXml.load(url)
.then(function (res) {
result = [];
//Добавляем балуны в массив
res.geoObjects.each(function (geoObject) {
result.push(geoObject);
});
//Добавляем массив в кластер
clusterer.add(result);
});
// Добавляем кластер на карту.
myMap.geoObjects.add(clusterer);
Понятное дело, если бы все это работало нормально, я б сюда не писал. Но имеется пара проблем, которые не дают мне спать ночами (буквально), а именно:
- Данные не передаются в балун, невероятным для меня образом отражается только имя ($[name]), даже если удалить все, что находится в repr:text
- Не применяются также стили, кодом которых я решил не перегружать эту тему.
Надеюсь на помощь и понимание.