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您将设置的样式确实很重要,我刚刚让您选择了正确的方式-即共享样式功能。好的,但是如何访问默认的蓝白色样式?这是本页上的内容: