【发布时间】:2015-07-02 10:26:45
【问题描述】:
我使用以下代码根据缩放级别修改圆形标记的半径:
//add the layer to the map
map.addLayer(vectorLayer);
//add selection interactivity, using the default OL3 style
var select = new ol.interaction.Select();
map.addInteraction(select);
map.getView().on('change:resolution', function(evt) {
var zoom = map.getView().getZoom();
var radius = zoom / 2 + 1;
var newStyle = new ol.style.Style({
image: new ol.style.Circle({
radius: radius,
fill: new ol.style.Fill({color: 'red'}),
stroke: new ol.style.Stroke({color: 'black', width: 1})
})
})
vectorLayer.setStyle(newStyle);
});
但我遇到的问题是,如果我在地图上选择一个特征,当地图缩放发生变化时,所选/突出显示的样式不会改变。如何还可以根据缩放/分辨率动态修改所选要素的样式?
澄清 上面的代码已经用于更改地图上所有要素的半径,但除此之外,我还需要更改所选要素的半径。已选择和未选择的功能都应根据缩放级别进行更改。
【问题讨论】:
-
您是否有
select互动或您在pointermove上突出显示? -
我在此 change:resolution 事件之前启动了一个选择交互。我将更新代码以显示更多内容。