Клуб API Карт

Удаление добавленного слоя

Пост в архиве.
Возник неожиданный вопрос: я добавил в карту новый слой, затем мне его требуется удалить. Использую буквально следующий код: 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... Спасибо!
1 комментарий
Sergey Konstantinov
28 января 2016, 08:39
Функция map.addLayer принимает только один параметр, который может быть ключом слоя или экземпляром слоя. Соответственно, в первом случае нужно в removeLayer передавать ключ, во втором - тот же экземпляр слоя. Если Вы хотите использовать слой по ключу, необходимо предварительно добавить его в хранилище слоев с помощью функции YMaps.Layers.add