一个点图层vectorlayer,样式用的Text,表达一个实时测量值,会不断刷新变化。
以前(没有用到vue框架,很原始的模式)的做法,更新后将新的TextStyle保存到feature里面,然后layer.getSource().refresh(),在functionStyle里面,直接return feat.get('style')。 没有问题,正常刷新。
现在的项目用到vue,也不知道跟vue有没有关系哈,只是记录一下环境。
套用原来的做法,发现问题,
问题1:每当layer.getSource().refresh(),图层的所有feature会被清空,所以这个函数不能用了
问题2:文字内容不会自动刷新,要鼠标拖一下地图才刷新。
第二个问题,网上搜了一圈,没有找到有效办法,后来放弃这种functionstyle模式,打算试试feature.setStyle方式
这种方法使用很简单,就是调用var s = feature.getStyle(); s.getText.setText('111111'); 再feature.setStyle(s),而且能够立即自动刷新。注意采用feature.setStyle这种模式,新建图层的时候,就不要设置style属性了。
这是一种很普通的需求,相信还有其它更好的做法,欢迎大家分享出来。。