Клуб API Карт

TypeError: this._Xk.getMap() is null не открывает балуна.

iytin-ne
21 октября 2012, 23:45

Возникла проблема. Пытаюсь сделать чтобы при изменении зума балун не закрывался полностью а снова был открыт. и если метка переместилась в кластер то вместо обычного балуна открывать кластерный. Но возникла проблема при уменьшении зума (-) например вот этой метки http://cybers.net.ua/4/index.php?m=Lo1IF балун сначала перестраивается с обычного балуна в кластерный,  а вот когда увеличиваю зум мне вместо того чтобы показать одиночный балун, выскакивает такая вот ошибка TypeError: this._Xk.getMap() is null. Чувствую что где-то туплю но уже не пойму где.

вот то что вызывает открытие снова балуна

  cluster.events.add('objectsaddtomap', function (e) {

................

if(mOpen){  //проверка есть ли Ид которое нужно открыть
        console.log(mOpen);
         // Получим данные о состоянии объекта внутри кластера.
                var geoObjectState = cluster.getObjectState(myPlacemark[mOpen]);
                // Проверяем, находится ли объект находится в видимой области карты.
                // Проверяем, находится ли балун в видимой области
            //  if (geoObjectState.isShown) {
                    if (geoObjectState.isClustered) {
                        geoObjectState.cluster.state.set('activeObject', myPlacemark[mOpen]);
                        geoObjectState.cluster.balloon.open();                       
                    } else {
                        // Если объект не попал в кластер, открываем его собственный балун.
                        myPlacemark[mOpen].balloon.open();
                    }   
                        if (over) {
                                // Если геоточка уже вне видимой области, переносим балун в обычный контейнер.
                                 balloon.options.set({
                                    pane: 'overlays',
                                    shadowPane: 'shadows'
                                });
                            }
                   
             // }
        }

......

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

 

выскакивает такая вот ошибка TypeError: this._Xk.getMap() is null. Чувствую что где-то туплю но уже не пойму где.

Подключай АПИ с mode=debug

и смотри Call Stack в консоли чтобы понять что именно приводит к ошибке

 

включил, теперь ругается на

cluster.Balloon.open: объект-кластер не добавлен на карту

ну вот всё теперь понятно )

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