我有大约100,000个特征在地图上显示。在特定的缩放级别下,我想在特征上方添加标签。这是没有标签的样式:
style: function(feature, resolution) {
var style = [new ol.style.Style({
image: new ol.style.Icon({
src: myImg,
rotation: myRotation
})
})]};
我尝试创建一个函数来创建新的样式,以便添加标签。
labelStyleFunction: function(name){
return new ol.style.Style({
text: new ol.style.Text({
text: name,
font: ' 10px Arial',
fill: new ol.style.Fill({
color: 'black'
}),
offsetY: -10,
offsetX: 30
})
});
}
当我达到所需的特定级别时,我尝试使用layer.forEachFeature和layer.forEachFeatureInExtent。
if(zoom >= 15 && status){
me.getData('clusters100').getSource().getSource().forEachFeatureInExtent(extent,function(feature){
feature.setStyle([
//me.getData('selectedStyle'),
me.labelStyleFunction(feature.get('name'))
]);
});
}
但我猜这是因为功能太多导致我的应用程序崩溃了...所以我想在标签上设置不透明度为0,然后在缩放到15时设置不透明度为1,但是:
- 这是否可行?
- 我该如何实现?