Openlayers 5选择向量
我试着效仿 我已经将其添加到按钮的(单击)处理程序中 当我写出选择和取消选择的内容时,我看到选择在控制台中起作用。但是,向量样式不会更改以显示它已被选中,并且在示例中我没有看到样式。所以,我只是假设它现在是ol/interaction/Select.js的一部分Openlayers 5选择向量,openlayers,openlayers-5,Openlayers,Openlayers 5,我试着效仿 我已经将其添加到按钮的(单击)处理程序中 当我写出选择和取消选择的内容时,我看到选择在控制台中起作用。但是,向量样式不会更改以显示它已被选中,并且在示例中我没有看到样式。所以,我只是假设它现在是ol/interaction/Select.js的一部分 在大多数情况下,首选的解决方案是使用图层和交互样式为特征设置样式。如果单个样式或样式数组足以满足每种情况下的所有功能,只需指定: let vectorLayer = new VectorLayer({ source: mySourc
在大多数情况下,首选的解决方案是使用图层和交互样式为特征设置样式。如果单个样式或样式数组足以满足每种情况下的所有功能,只需指定:
let vectorLayer = new VectorLayer({
source: mySource,
style: deselectedStyle
});
let selectClick = new Select({
condition: click,
style: selectedStyle
});
如果样式可能因特征的特性而异,请使用样式函数返回适当的样式:
let vectorLayer = new VectorLayer({
source: mySource,
style: function(feature) {
... // choose appropriate deselected style for this feature
return chosenStyle;
}
});
let selectClick = new Select({
condition: click,
style: function(feature) {
... // choose appropriate selected style for this feature
return chosenStyle;
}
});
如果首选设置单个特征的样式,则在选择和取消选择时需要设置和重置样式:
selectClick.on('select', function(e) {
e.selected.forEach(function(feature) { feature.setStyle(selectedStyle); });
e.deselected.forEach(function(feature) { feature.setStyle(deselectedStyle); });
});
默认编辑样式将应用于交互,就像默认样式应用于向量层一样。但是,如果您直接在要素上设置了样式,该样式将覆盖这两个默认值。另外,从一些来源导入的功能,如KML有自己的风格。非常感谢!!我应该在哪里定义在选择向量时显示的样式
selectClick.on('select', function(e) {
e.selected.forEach(function(feature) { feature.setStyle(selectedStyle); });
e.deselected.forEach(function(feature) { feature.setStyle(deselectedStyle); });
});