Javascript 使用HTML5范围滑块更改openlayer 3的圆半径

Javascript 使用HTML5范围滑块更改openlayer 3的圆半径,javascript,html5-canvas,openlayers,openlayers-3,Javascript,Html5 Canvas,Openlayers,Openlayers 3,尝试使用HTML5范围滑块更改圆的半径,但它没有删除第一个圆层,但map.removeLayer不起作用我在使用openlayer 2之前做了此操作,但它不起作用openlayer 3我添加了代码 需要相同的开放层3下面是代码 IMP-所需滑块范围为1英里到5英里 var功能=[]; 变量半径=$(“#范围”).val(); var经度=400000; 纬度=300000; var point1=新的ol.功能( 新的ol.geom.点([400000,400000]) ); //conso

尝试使用HTML5范围滑块更改圆的半径,但它没有删除第一个圆层,但map.removeLayer不起作用我在使用openlayer 2之前做了此操作,但它不起作用openlayer 3我添加了代码

需要相同的开放层3下面是代码

IMP-所需滑块范围为1英里到5英里

var功能=[];
变量半径=$(“#范围”).val();
var经度=400000;
纬度=300000;
var point1=新的ol.功能(
新的ol.geom.点([400000,400000])
);
//console.log(第1点);
//警报(半径);
//var point1=新的ol.geom.Point(400000400000);
变量圆=新的几何圆([经度,纬度],半径);
功能推送(新ol.功能({
几何图形:圆
}));
var circleSource=新的ol.source.Vector({
特色:特色
});
var layer=新ol.layer.Vector({
资料来源:circleSource,
风格:[
新ol风格({
笔划:新的ol风格笔划({
颜色:“蓝色”,
宽度:3
}),
填充:新的ol.style.fill({
颜色:“rgba(0,0,255,0.1)”
})
})]
});
//创建地图
var map=新ol.map({
图层:[
新ol.layer.Tile({
来源:new ol.source.OSM()
})
],
目标:“地图”,
视图:新ol.view({
中心:[400000,300000],
缩放:2
})
});
map.addLayer(层);
函数updateTextInput(val){
document.getElementById('range')。value=val;
半径=$(“#范围”).val();
控制台日志(半径);
map.removeLayer(层);
//增加半径(30000);
var特征=[];
//var半径=100000;
var经度=400000;
纬度=300000;
var point1=新的ol.功能(
新的ol.geom.点([400000,400000])
);
//警报(半径);
//var point1=新的ol.geom.Point(400000400000);
变量圆=新的几何圆([经度,纬度],半径);
功能推送(新ol.功能({
几何图形:圆
}));
var circleSource=新的ol.source.Vector({
特色:特色
});
var layer=新ol.layer.Vector({
资料来源:circleSource,
风格:[
新ol风格({
笔划:新的ol风格笔划({
颜色:“蓝色”,
宽度:3
}),
填充:新的ol.style.fill({
颜色:“rgba(0,0,255,0.1)”
})
})]
});
map.addLayer(层);
}
html,正文{
身高:100%;
宽度:100%;
填充物:5px;
边际:0px;
}
#地图{
身高:90%;
宽度:95%;
}

如果要修改圆的半径,无需删除图层并添加新图层,只需使用:

yourCircle.setRadius(yourNewRadius);
并确保您使用的是最新版本的OL3,因为此功能仍然是实验性的

您只需更改样式,如:

// we change this on input change
var radius = 10;
var styleFunction = function() {
  return new ol.style.Style({
    image: new ol.style.Circle({
      radius: radius,
      stroke: new ol.style.Stroke({
        color: [51, 51, 51],
        width: 2
      }),
      fill: new ol.style.Fill({
        color: [51, 51, 51, .3]
      })
    })
  });
};

var update = function(value) {
  radius = value;
  feature.setStyle(styleFunction);
}

var feature = new ol.Feature(new ol.geom.Point([400000, 400000]));
feature.setStyle(styleFunction);

var vectorLayer = new ol.layer.Vector({
  source: new ol.source.Vector({
    features: [feature]
  })
});

非常感谢。u plz能否建议如何将滑块的最小值设置为1英里,最大值设置为5英里。滑块值以英里为单位