К опытным пользователям вопрос: почему когда я включаю какой-то базовый слой, слой ОСМ, который скрыт, продолжает подгружаться? На своём сайте заметил такой эффект. Посмотрите вот так, загляните в инспектор загрузок: там грузятся тайлы мапника, 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, все проблемы исчезли.