Страница 1 из 1

OpenLayers: появление слоя после отключения

Добавлено: 10 окт 2010, 20:25
Denis Rykov
На карте есть 2 слоя - layer1 и layer2, один из них (условно назовём его layer2) при создании имеет признак visibility = false. Создан контрол SelectFeature для слоя layer1 и добавлена функция:

Код: Выделить всё

 onSelect: function(evt) {
    map.zoomToExtent(evt.geometry.bounds);
    layer1.display(false);
    layer2.visibility = true;
    layer2.redraw();
 }
Всё ок, но почему после того, как двинуть карту (Pan), снова появляется layer1, ведь он отключен?

Re: OpenLayers: появление слоя после отключения

Добавлено: 10 окт 2010, 20:45
Denis Rykov
Почти разобрался, вот рабочий вариант:

Код: Выделить всё

onSelect: function(evt) {
    map.zoomToExtent(evt.geometry.bounds);
    layer1.visibility = false;
    layer1.display(false);
    layer2.visibility = true;
    layer2.redraw();
}
Но почему недостаточно просто сказать layer1.display(false)?

Re: OpenLayers: появление слоя после отключения

Добавлено: 11 окт 2010, 09:49
Mavka
Нужно использовать метод setVisibility. Он делает все то что вы написали и еще хитрые финты. В ООП вообще нужно осторожно менять свойства напрямую, особенно если есть соответствующий метод.

P.S. Мой персональный 1k-гет.