我现在正在实习,这是我第一次接触OL3。 我尝试制作一个用标记绘制和更改文本的演示。 但我发现我只能更改标记的所有文本而不是更改所选标记。 这是一个简单的jsfiddle我做的。
features: select.getFeatures()
我认为这不适合我。 那我怎么能这样做呢?
答案 0 :(得分:0)
您可以将style
变量更改为ol.FeatureStyleFunction()
,以便从该功能中存储的属性中获取标签。
var style = function () {
return [
new ol.style.Style({
image: new ol.style.Icon({
anchor: [0.5, 46],
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',
opacity: 0.75,
src: '//openlayers.org/en/v3.8.2/examples/data/icon.png'
}),
text: new ol.style.Text({
font: '12px Calibri,sans-serif',
fill: new ol.style.Fill({ color: '#000' }),
stroke: new ol.style.Stroke({
color: '#fff', width: 2
}),
// get the text from the feature (`this` is the feature)
text: this.get('text')
})
})
];
};
要更新文本,请更新此属性:
var features = select.getFeatures();
features.forEach(function(feature){
feature.set('text', nameElement);
});