我将点添加到地图上。我想为每个点添加新名称,例如'Point 1'
,'Point 2'
等。问题是,当我将function(){}
添加到style
时,它会更改{{ 1}},每步动作都会自动变大。参见下面的代码和照片
indexPoint
答案 0 :(得分:3)
如果将函数传递给图层的“样式”属性,则称为样式函数。每次渲染图层时,都会调用一次样式功能。在您的示例中,全局变量indexPoint在每个平移,每次缩放等上更新其值。
我认为您有2个选择:
选项1:将每个点的数量设置为一个属性,然后让styleFunction读取该属性。您可以访问样式函数中的features属性,因为它可以将特征和分辨率作为参数,看起来可能像这样:
style: function(feature, resolution) {
return new Style({
image: new ol.style.Circle({
radius: 7,
fill: new ol.style.Fill({
color: '#ffcc33'
})
}),
text: new Text({
text: feature.get('number'),
fill: new Fill({color: '#ffcc33'}),
});
});
}
您可以在用户绘制点时立即设置“数字”属性,这可以this way完成。
选项2:不要在图层上设置样式功能,而应在创建每个特征时分别设置其样式