Клуб API Карт

Добавление/удаление регионов с карты

Пост в архиве.
ovvk-info
22 апреля 2010, 18:58

Как этого добиться при помощи кнопки кнопки-переключателя на тулбаре?

С начала  пытался подгрузить сразу регионы и сделать их невидимыми:

YMaps.Regions.load("ru", function (state, response) {
             if (state == YMaps.State.SUCCESS) {
               
response.forEach(function (region) {
                        region.setOptions({
                                highlightRegion: false
                        });
                    });
               
                    map.addOverlay(response);
             } else {
                        alert("Во время выполнения запроса произошла ошибка: " + response.error.message)
                }
            });

А при нажатии на кнопку отображать их:

YMaps.Events.observe(button, button.Events.Select, function () {
    hideObl ();
            });
           
function hideObl () {
                  response.forEach(function (region) {
                      region.setOptions({
                             highlightRegion: true
                      });
             });
};


Не получилось.


Затем попытался удалять или добавлять при нажатии на кнопку:            

YMaps.Events.observe(button, button.Events.Select, function () {
    map.removeOverlay(response);
});
           
YMaps.Events.observe(button, button.Events.Deselect, function () {
   map.removeOverlay(response);
});

Но опять ничего.

Мне необходимо, чтоб регионы либо скрывались/отображались, либо удалялись / добавлялись при нажатии на кнопку переключатель.

3 комментария
 
    // Создание панели инструментов
var toolbar = new YMaps.ToolBar(),

    // Создание кнопки-флажка
    button = new YMaps.ToolBarToggleButton({ caption: "Показать регионы" }),
   
    // Коллекция регионов
    regions;

toolbar.add(button);
map.addControl(toolbar);

// Если кнопка активна, добавлям регионы на карту
YMaps.Events.observe(button, button.Events.Select, function () {
    if (!regions) {
        YMaps.Regions.load("ua", function (state, response) {
            if (state == YMaps.State.SUCCESS) {
                regions = response;
                map.addOverlay(regions);
            } else {
                alert("Во время выполнения запроса произошла ошибка: " + response.error.message)
            }
        });
    } else {
        map.addOverlay(regions);
    }
});

// Если кнопка неактивна, то скрываем регионы
YMaps.Events.observe(button, button.Events.Deselect, function () {
    map.removeOverlay(regions);
});
// Коллекция регионов
regions;

Вот так просто?

или


YMaps.load("regions", callback);

Не понимаю.

Все понял, просто:

 

var regions;