Возник неожиданный вопрос: я добавил в карту новый слой, затем мне его требуется удалить. Использую буквально следующий код:
map = new YMaps.Map(document.getElementById("YMapsID"));
var myData = new YMaps.TileDataSource(url, 1, 1);
var myLayer = new YMaps.MapLayer(myData);
map.addLayer(myLayer, zone);
если следующей строкой ставлю
map.removeLayer(myLayer);
слой замечательно удаляется. Но если пытаюсь делать удаление по ключу (zone - строка может быть у меня "1", "2", "3" и т. д.):
map.removeLayer(zone);
то ничего не происходит. Скажите, пожалуйста, я что-то недопонимаю или делаю не так?
Очень не хотелось бы делать глобальный массив объектов MapLayer, а иначе просто не знаю как получить нужный экземпляр MapLayer пользуясь интерфейсом Map...
Спасибо!
Функция map.addLayer принимает только один параметр, который может быть ключом слоя или экземпляром слоя. Соответственно, в первом случае нужно в removeLayer передавать ключ, во втором - тот же экземпляр слоя. Если Вы хотите использовать слой по ключу, необходимо предварительно добавить его в хранилище слоев с помощью функции YMaps.Layers.add