Клуб API Карт

Проблема с кластерами

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

При добавлении кластеров на карту возникла проблема:




js

window.onload = function () {
ymaps.ready(function () {
// Создание экземпляра карты
var myMap = new ymaps.Map('map', {
center: [62.19, 103.36],
zoom: 3,
     minZoom: 10,
//behaviors: ['default', 'scrollZoom'],
type: "yandex#map"
 });
var clusterer = new ymaps.Clusterer();
   
// Загрузка YMapsML-файла
ymaps.geoXml.load('/files/imperiazolota/files/map_content.xml').then(function (res) {
res.geoObjects.each(function (geoObject) {
clusterer.add(geoObject);
});
myMap.geoObjects.add(clusterer);
},
function (error){   // Вызывается в случае неудачной загрузки YMapsML-файла
alert("При загрузке YMapsML-файла произошла ошибка: " + error);         
});
myMap.controls.add("zoomControl").add("mapTools").add(new ymaps.control.TypeSelector(["yandex#map", "yandex#satellite", "yandex#hybrid", "yandex#publicMap"]));
});
}

xml-файл доступен по адресу http://www.imperiazolota.ru/files/imperiazolota/files/map_content.xml 

 

В чем может быть проблема?

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

Балун кластера пытается найти в geoObject.properties поля clusterCaption или balloonContentHeader.  Ни одно из этих полей у подгружаемых геообъектов не определено.

А как и в каком месте его нужно определить?

Наверное самое простое решение - дописать уже готовым геообъектам нужное поле в данные.

res.geoObjects.each(function (geoObject) {geoObject.properties.set('clusterCaption', geoObject.properties.get('name'));clusterer.add(geoObject);});