如何编辑Openlayers3中的选定文本?

时间:2015-11-02 13:53:01

标签: openlayers-3

我现在正在实习,这是我第一次接触OL3。 我尝试制作一个用标记绘制和更改文本的演示。 但我发现我只能更改标记的所有文本而不是更改所选标记。 这是一个简单的jsfiddle我做的。

  features: select.getFeatures()

我认为这不适合我。 那我怎么能这样做呢?

1 个答案:

答案 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);
});

http://jsfiddle.net/jonataswalker/b44nxco8/