Сохранение контекста OpenLayers.Control.LayerSwitcher
Добавлено: 27 авг 2009, 11:38
Информация отображается на странице средствами OpenLayers, при этом карта является частью формы, т.е. обновляется задании в форме параметров и нажатии кнопки "Отправить". При этом должны сохраняться настройки самих OpenLayers - масштаб, позиция и т.п.
В результате удалось сохранить все что нужно, за исключением значения LayerSwitcher (просто не нашел такого метода/свойства). Т.е. при обновлении карты, на ней всегда оказывается выбранным первый слой (по-умолчанию). Если пользователь теперь выберет вручную тот слой, который был им выбран до отправки формы, то все работает нормально. Но если выполнять манипуляции без предварительного выбора, то слои не отображаются корректно (не масштабируются, не перемещаются). Нужен какой-то механизм, позволяющий средствами JavaScript считать значение текущего активного слоя, и соответственно, задать его принудительно в LayerSwitcher впоследствии. Типа "ActiveLeyer = LayerSwitcher.ActiveLayer;" и "LayerSwitcher.SetActiveLayer(ActiveLeyer);" (таких свойств в описании я не нашел). Есть ли такая адекватная возможность, или надо заниматься реверс-инженерингом, вытаскивая из исходников OpenLayers нужные переменные?
В результате удалось сохранить все что нужно, за исключением значения LayerSwitcher (просто не нашел такого метода/свойства). Т.е. при обновлении карты, на ней всегда оказывается выбранным первый слой (по-умолчанию). Если пользователь теперь выберет вручную тот слой, который был им выбран до отправки формы, то все работает нормально. Но если выполнять манипуляции без предварительного выбора, то слои не отображаются корректно (не масштабируются, не перемещаются). Нужен какой-то механизм, позволяющий средствами JavaScript считать значение текущего активного слоя, и соответственно, задать его принудительно в LayerSwitcher впоследствии. Типа "ActiveLeyer = LayerSwitcher.ActiveLayer;" и "LayerSwitcher.SetActiveLayer(ActiveLeyer);" (таких свойств в описании я не нашел). Есть ли такая адекватная возможность, или надо заниматься реверс-инженерингом, вытаскивая из исходников OpenLayers нужные переменные?