Клуб API Карт

Кластеры меток

inkubu
23 апреля 2013, 12:48

Помогите разобраться, как работает кластер меток.

При одном и том же коде, на локальном сервере кластер меток отображается вот так

 

 и при этом одна и та же точка повторяется три раза. Если не использовать кластеризацию то задвоенности точек нет, все нормально отображается

а на хостинге при щелчке на метку кластера, кластер просто распадается на точки. http://dojust.ru/m/cluster.html

 

От чего зависит такое поведение?

17 комментариев
Подписаться на комментарии к посту

А какое поведение вам нужно? попробуйте задать его явно:

clusterer = new ymaps.Clusterer({clusterDisableClickZoom: true});

Кроме того проверьте, действительно ли код у вас одинаковый, возможно на локальном сервере у вас для меток всё-же задано clusterCaption:'caption'

Кроме того вижу что у вас в на хостинге в кластер попадают совсем не те же метки что на хостинге, возможно разница в отдаваемых сервером данных?

 


Поведение нужно как на скрине.

Код точно одинаковый, я его сначала тестирую на локальном сервере, потом выкладываю на хостинг.

 

var myGeoObjects =[] ;

$.getJSON("vivodpointsmap.php", function(json) {

for (i = 0; i < json.markers.length; i++) {  
var myPlacemark = new ymaps.Placemark([json.markers[i].lat,json.markers[i].lon], {
                    // Свойства
                    balloonContentHeader: json.markers[i].name,
                    balloonContentBody:
                'Адрес:
' + json.markers[i].addresstext + '
' +
                'Контакт:
' + json.markers[i].contacttext
                            }, {
                    // Опции
                    preset: json.markers[i].styleplacemark
                          });

myGeoObjects.push(myPlacemark);
                         
}

clusterer = new ymaps.Clusterer() ;
clusterer.add(myGeoObjects);
myMap.geoObjects.add(clusterer) ;

} ) ;

 

Метки разные потому что, обе базы тестовые и на хостинге база по старее, но в обеих базах метки не повторяются. При выводе меток из лок. базы без использования кластера, точки не повторяются.

 

 

 

Спасибо! Разобрался

clusterer = new ymaps.Clusterer({clusterDisableClickZoom: true}); - помогло и еще пхп выводящий метки на карту отличался от того что на хостинге

 

 

А не знаете как сделать чтобы содержимое балуна кластера показывалось все? То что справой стороны, если контент не помещается весь, то обрезается

Можете попробовать увеличить ширину балуна кластера через опции.

тогда уезжает левая часть((

можно как-то зафиксировать левую часть, а правая чтоб прокручивалась?

clusterer = new ymaps.Clusterer({
        balloonWidth: 570,
        clusterBalloonMaxWidth: 800,
        clusterDisableClickZoom: true})

Ну соответственно минимальную и максимальную ширину ставьте ту которая нужна вам.

так все равно обрезается правая часть, нашел выход вот так сделать:

clusterer = new ymaps.Clusterer ( {clusterDisableClickZoom: true,
                                hideIconOnBalloonOpen: true,
                                clusterBalloonMaxHeight: 150,
                                clusterBalloonMainContentLayout: MainContentLayout,
                                clusterBalloonSidebarItemLayout: ItemLayout
} ) ;

но уезжает левая часть, если прокручивать правую))

 

Странно, я привёл вам дословно кусок кода который у меня нормально работает.

balloonWidth: 570 - это ширина правой части(не всего балуна). Если надо чтобы скролл не закрывал содержимое то указывайте это значение пикселей на 25-30 больше реальной ширины содержимого.

clusterBalloonMaxWidth: 800 - это максимальная ширина складывающаяся из ширины левой части и ширины правой части.

 

у меня обрезается длина, а не ширина.

Вот два примера

http://dojust.ru/m/cluster1.html - обрезанная длина

http://dojust.ru/m/cluster.html - все показывает, но уезжает левая часть

ага.. но я уже смирился с тем что левая часть уезжает))

А не знаете случайно, как сменить иконку кластера, если в нем присутствует например метка twirl#airplaneIcon

Посмотрите вот тут, http://ymapsapi.ya.ru/replies.xml?item_no=892

Там не только это описано)

я это смотрел)

не могу понять где описана связь иконок меток с цветами чарта.

вот здесь?

PieChartClusterer.COLOURS = {
    "blue"       : "0A6CC8",
    "darkblue"   : "3D4AE9",
    "darkgreen"  : "158B02",
    "darkorange" : "CD6D2D",
    "green"      : "1AB500",
    "grey"       : "94948E",
    "lightblue"  : "4391E7",
    "night"      : "143A6B",
    "orange"     : "CCA42B",
    "pink"       : "E666DD",
    "red"        : "E03632",
    "violet"     : "A41DE2",
    "white"      : "FFFFFF",
    "yellow"     : "D4C62C",
    "brown"      : "946134",
    "black"      : "000000"
};


тогда как правильно мне связать цвет с вот такой иконкой twirl#buildingsIcon?

"buildings"       : "0A6CC8" 

так?