Javascript 扩展默认的OpenLayers编辑样式?
我有一个向量样式,有一个更大的Javascript 扩展默认的OpenLayers编辑样式?,javascript,openlayers-3,Javascript,Openlayers 3,我有一个向量样式,有一个更大的图像:radius。我希望选择交互的样式与向量样式的image:radius匹配 如何在不手动重新定义整个编辑样式的情况下执行此操作 是否可以采用默认样式并仅替代一个零件?像图像的半径?或者至少只重新定义整个图像? 在ol.layer.Vector和ol.interaction之间共享一个变量。选择并在选择时更改将在函数中读取的变量: var radius = 10; var styleFunction = function() { return [
图像:radius
。我希望选择交互的样式与向量样式的image:radius
匹配
如何在不手动重新定义整个编辑样式的情况下执行此操作
是否可以采用默认样式并仅替代一个零件?像图像的半径?或者至少只重新定义整个图像?
在
ol.layer.Vector
和ol.interaction之间共享一个变量。选择并在选择时更改将在函数中读取的变量:
var radius = 10;
var styleFunction = function() {
return [
new ol.style.Style({
image: new ol.style.Circle({
radius: radius,
fill: new ol.style.Fill({
color: 'green'
})
})
})
];
};
var select_interaction = new ol.interaction.Select({
style: styleFunction
});
select_interaction.on('select', function(evt) {
radius = evt.selected.length > 0 ? 20 : 10;
});
一个ol.style.Circle#setRadius
可以在这种情况下使用。请告诉我给出的答案是否是您想要的。谢谢您的回答。我在找相反的方向。即:未选定样式:橙色线、橙色多边形、半径为10的橙色圆选定样式:蓝白色线、蓝白色多边形、半径为10的蓝白色圆环(与默认选择模式不同,不是6或8)。蓝白色是指默认的选择样式。@zsero您将设置的样式确实很重要,我刚刚让您选择了正确的方式-即共享样式功能。好的,但是如何访问默认的蓝白色样式?这是本页上的内容: