javascript openlayers3对象方法

时间:2017-10-26 11:32:16

标签: javascript

我有这段代码:

let text = new ol.style.Text({
    font: '14px Arial',
    text: 'string'
});

let icon = new ol.style.Style({
    image: new ol.style.Icon(/** @type {olx.style.IconOptions} */ ({
        anchor: [0.5, 46],
        anchorXUnits: 'fraction',
        anchorYUnits: 'pixels',
        src: './img/icon.png'
    })),
    text: text
});

为什么这有效? :

text.setText("otherString"); 
icon.setText(text); 
feature.setStyle(icon) 

// the name of someFeature is changed to someOtherString as supposed to 

但这不起作用:

feature.setStyle(icon.setText(text.setText("anotherString"))); 
//name is not changed.

这可能是我不明白的Javascript。请帮忙! 谢谢!

1 个答案:

答案 0 :(得分:1)

可能是因为someText.setText()返回类型不是预期的someIcon.setText()输入类型。

如果您尝试这样做:someIcon.setText(someText);

您传递的是对象someText,而不是someText.setText("someOtherString")的输出。

这就是为someIcon.setText(someText);工作但[{1}}无效的原因。