Openlayers 3 绑定到 Vector 层以提高可见性的复选框没有做任何事情
Openlayers 3 A checkbox bound to a Vector layer for visibility is not doing anything
我正在尝试将复选框绑定到 'visible' 属性 的矢量图层,但它不起作用;容易指出谁发现我的打字错误 :)
事实是,这适用于 ol.layer.Tile,但不适用于 ol.layer.Vector,只有可见的复选框不起作用。 'opacity' 工作正常。
var list = document.getElementById('some-ul-element')
....
var li = document.createElement('li');
var checkbox = document.createElement('input');
checkbox.setAttribute('type','checkbox');
checkbox.setAttribute('checked',true);
li.appendChild(checkbox);
var label = document.createElement('label');
label.appendChild(document.createTextNode(layer.get("title")));
li.appendChild(label);
var range = document.createElement('input');
range.setAttribute('type','range');
range.setAttribute('min','0');
range.setAttribute('max','1');
range.setAttribute('step','0.01');
range.setAttribute('value','1');
li.appendChild(range);
new ol.dom.Input(range).bindTo('value',layer,'opacity');
new ol.dom.Input(checkbox).bindTo('checked',layer,'visible');
....
list.appendChild(li)
我在 http://openlayers.org/en/master/examples/bind-input.html?mode=raw
上工作
var checkbox = document.createElement('input');
checkbox.setAttribute('type','checkbox');
new ol.dom.Input(checkbox).bindTo('checked',layer,'visible');
document.body.appendChild(checkbox);
您是否查看过这个 Whosebug 问题 https://gis.stackexchange.com/questions/138364/layer-doesnt-turn-back-on-after-clicking-in-openlayers-3/139346#139346 还有一些使用 ol.dom.Input 元素的替代解决方案。
问题是,我使用的地图是使用此选项声明的:
new ol.Map({
....
renderer: ['dom','canvas','webgl'],
....
});
这完全被禁用了'setVisible',我什至无法成功使用'layer.setVisible(false)'。
在实例化时从 ol.Map 选项中删除整个 "renderer" 键值对解决了这个问题。
我正在尝试将复选框绑定到 'visible' 属性 的矢量图层,但它不起作用;容易指出谁发现我的打字错误 :)
事实是,这适用于 ol.layer.Tile,但不适用于 ol.layer.Vector,只有可见的复选框不起作用。 'opacity' 工作正常。
var list = document.getElementById('some-ul-element')
....
var li = document.createElement('li');
var checkbox = document.createElement('input');
checkbox.setAttribute('type','checkbox');
checkbox.setAttribute('checked',true);
li.appendChild(checkbox);
var label = document.createElement('label');
label.appendChild(document.createTextNode(layer.get("title")));
li.appendChild(label);
var range = document.createElement('input');
range.setAttribute('type','range');
range.setAttribute('min','0');
range.setAttribute('max','1');
range.setAttribute('step','0.01');
range.setAttribute('value','1');
li.appendChild(range);
new ol.dom.Input(range).bindTo('value',layer,'opacity');
new ol.dom.Input(checkbox).bindTo('checked',layer,'visible');
....
list.appendChild(li)
我在 http://openlayers.org/en/master/examples/bind-input.html?mode=raw
上工作var checkbox = document.createElement('input');
checkbox.setAttribute('type','checkbox');
new ol.dom.Input(checkbox).bindTo('checked',layer,'visible');
document.body.appendChild(checkbox);
您是否查看过这个 Whosebug 问题 https://gis.stackexchange.com/questions/138364/layer-doesnt-turn-back-on-after-clicking-in-openlayers-3/139346#139346 还有一些使用 ol.dom.Input 元素的替代解决方案。
问题是,我使用的地图是使用此选项声明的:
new ol.Map({
....
renderer: ['dom','canvas','webgl'],
....
});
这完全被禁用了'setVisible',我什至无法成功使用'layer.setVisible(false)'。
在实例化时从 ol.Map 选项中删除整个 "renderer" 键值对解决了这个问题。