Как сделать LayerSwitcher своими руками?
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 04 окт 2009, 19:22
- Репутация: 0
Как сделать LayerSwitcher своими руками?
Здравствуйте. У меня появилась необходимость в OpenLayers вынести LayerSwitcher за пределы карты. То есть убрать его с карты и создать функционал переключения слоев вручную. Вот здесь читал о подобном, но как реализовать так и не понял. Подскажите как сделать задуманное.
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Как сделать LayerSwitcher своими руками?
лангольеры под окном жрали время ом-ном-ном
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 04 окт 2009, 19:22
- Репутация: 0
Re: Как сделать LayerSwitcher своими руками?
Этот вариант как я понял предполагает просто вынос стандартного LayerSwitcher за пределы карты. А можно ли сделать свой LayerSwitcher, то есть сделать свои радиобатоны и чекбоксы?
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Как сделать LayerSwitcher своими руками?
Готовый LayerSwitcher не подходит, вручную переключать слои тоже. Непонимаю...
лангольеры под окном жрали время ом-ном-ном
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 04 окт 2009, 19:22
- Репутация: 0
Re: Как сделать LayerSwitcher своими руками?
Вот именно, что надо вручную. Как я понял нужна функция setBaseLayer(). Пробую выполнить что-то типа такого:
не выходит.
Код: Выделить всё
function layerswitch() {
map.setBaseLayer(demolayer2)
};
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Как сделать LayerSwitcher своими руками?
И чаво говорит? Не хочу не буду?
лангольеры под окном жрали время ом-ном-ном
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 04 окт 2009, 19:22
- Репутация: 0
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Как сделать LayerSwitcher своими руками?
И в firebugs? У меня очень хорошо переключает
лангольеры под окном жрали время ом-ном-ном
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 04 окт 2009, 19:22
- Репутация: 0
Re: Как сделать LayerSwitcher своими руками?
Не, не переключает.Привожу код:
Функцию вызываю кнопкой:
Если не трудно ткните пальцем где накосячил.
Код: Выделить всё
<script>
var map;
function init() {
map = new OpenLayers.Map('map');
map.addControl(new OpenLayers.Control.LayerSwitcher());
var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );
var ghyb = new OpenLayers.Layer.Google(
"Google Hybrid",
{type: G_HYBRID_MAP, numZoomLevels: 20}
);
map.addLayers([wms, ghyb]);
map.zoomToMaxExtent();
};
function layerswitch() {
map.setBaseLayer(ghyb)
};
</script>
Код: Выделить всё
<input type="button" value="Слой 2" onClick="layerswitch()">
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Как сделать LayerSwitcher своими руками?
Сделать ghyb глобальной
а здесь без var:
Код: Выделить всё
var map, ghyb;
Код: Выделить всё
ghyb = new OpenLayers.Layer.Google(
лангольеры под окном жрали время ом-ном-ном
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 04 окт 2009, 19:22
- Репутация: 0
Re: Как сделать LayerSwitcher своими руками?
Спасибо большое, вот уж не думал, что проблема в этом может быть. Вот что значит нехватка знаний javascript'а.
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 04 окт 2009, 19:22
- Репутация: 0
Re: Как сделать LayerSwitcher своими руками?
C переключением слоев вроде разобрался, сделал два радиобатона, всё переключается отлично.
А вот как быть с оверлеями? Они ведь должны накладываться на активный слой, а не влючаться вместо него. Может для оверлеев нужна какаято другая функция?
Код: Выделить всё
<input type="radio" value="1" checked="checked" onchange="layerswitch1()">Карта<br />
<input type="radio" value="2" onchange="layerswitch2()">Снимок<br />
- dobeer
- Активный участник
- Сообщения: 199
- Зарегистрирован: 25 дек 2009, 21:54
- Репутация: 1
- Откуда: Чита
- Контактная информация:
Re: Как сделать LayerSwitcher своими руками?
wms.setVisibility(true); //показать
wms.setVisibility(false); //скрыть
Если я правильно понял о чем вы...
wms.setVisibility(false); //скрыть
Если я правильно понял о чем вы...
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 04 окт 2009, 19:22
- Репутация: 0
Re: Как сделать LayerSwitcher своими руками?
А как это применить относительно конкретного слоя?
- dobeer
- Активный участник
- Сообщения: 199
- Зарегистрирован: 25 дек 2009, 21:54
- Репутация: 1
- Откуда: Чита
- Контактная информация:
Re: Как сделать LayerSwitcher своими руками?
wms - имя вашего дополнительного слоя
...например:
<input type="radio" value="1" checked="checked" onchange="ghyb.setVisibility(false);">Отключить<br />
<input type="radio" value="2" checked="checked" onchange="ghyb.setVisibility(true);">Включить<br />
...например:
<input type="radio" value="1" checked="checked" onchange="ghyb.setVisibility(false);">Отключить<br />
<input type="radio" value="2" checked="checked" onchange="ghyb.setVisibility(true);">Включить<br />
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя