Обсуждение OpenLayers

К опытным пользователям вопрос: почему когда я включаю какой-то базовый слой, слой ОСМ, который скрыт, продолжает подгружаться? На своём сайте заметил такой эффект. Посмотрите вот так, загляните в инспектор загрузок: там грузятся тайлы мапника, tilesX.openstreetmap.org, хотя слой скрыт. Из-за этого трафик картинок удваивается, всё грузится очень тормозно.

Подключаю вот так и указанный эффект не наблюдаю:

var osm = new OpenLayers.Layer.OSM(“OpenStreetMap”);
map.addLayer(osm);

Хм, похоже это глюк только Хрома. В остальных броузерах всё нормально.

Выяснил, в чём дело.

Подключаем несколько слоёв в карту. Потом, допустим, расшифровываем печенюшку со слоями (пока контрол ArgParser не научился сам их читать)

for (var i = map.layers.length - 1; i >= 0; i -= 1) {
    var layer = map.layers[ i]
    if (layer.layerCode) {
        layer.setVisibility(layerConfig.indexOf(layer.layerCode) != -1)
    }
    else {
        layer.setVisibility(false);
    }
}

(базовые слои оставим за скобками пока). Так вот, в map.layers последний элемент - это невидимый служебный слой, который если отключить, всё поедет криво. И лишние тайлы грузятся, и при запуске ничего не показывается. Убрал else, все проблемы исчезли.