Клуб API Карт

infoLayerShown: true - нет синхронизации с TrafficControl, лишний слой

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

Запускаю карту, отображается информационный слой и слой с пробками.

При этом в контроле чекбокс выключен. Далее - если на чекбокс нажать один раз и включить слой через контрол - он включается, картина на карте не меняется. Если теперь выключить чекбокс, то: информационный слой отключается, видны пробки, но под слоем пробок проглядывают иконки информационного слоя.

Документацию читал - не нашёл как такое обрабатывать. Пробовал менять местами включение контрола и провайдера пробок. Может надо контрол иницализировать после того как карта отобразится?

 

var trafficControl = new ymaps.control.TrafficControl({shown: true});
map.controls.add(trafficControl, {top: 10, right: 47});
trafficControl.expand();
                                                
var actualProvider = new ymaps.traffic.provider.Actual({}, {infoLayerShown: true}); // 
actualProvider.setMap(map);

 

 



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

Вы добавляете на карту контрол пробок, который, в свою очередь, добавляет на карту один из провайдеров (по умолчанию провайдер пробок "сейчас"). Затем вы создаете еще один провайдер и снова добавляете его на карту, минуя контрол.

Чтобы работать с провайдерами, которые добавляет на карту панелька пробок, используйте метод getProvider()

trafficControl.getProvider('traffic#actual').state.set('infoLayerShown', true);

Добрый день.
Есть некоторая проблема с показом уровня пробок в панели "Пробки". На карте установлена метка (placemark), центр карты совпадает с ее координатами, причем надо отметить, что метка находится не на дороге, а рядом с ней.

Так вот, в панели не появляется информация об уровне пробок, но стоит немного перетащить карту и тут же загружается нужная цифра. Правильно ли я понимаю, что проблема в том, что центр карты находится не на дороге?

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