在角度图层和openlayers中,将地图点的名称设置为动态

时间:2018-09-08 13:54:06

标签: angular openlayers openlayers-5

我正在使用angular6和openlayers5。

这种情况是用户进行搜索,并且某些特征从数据库中获取并呈现在OL矢量层上。此时,要素已经有一个名称,该名称来自数据库(postgresql),因此这是它们在地图上呈现时的名称。

然后,用户可以单击任何一个进行编辑。有一个包含功能名称的文本字段,但可以编辑。

在编辑文本字段名称的同时,我想在地图上编辑地图项的名称。现在,我正在文本字段中编辑名称,但是地图上的名称没有更改,这肯定会使用户感到困惑。

我现在所拥有的。每次搜索后都会得到一个GeoJSON,并将其放在图层上。

  const results = (new GeoJSON()).readFeatures(data.data);      
  this.myvectorsource.addFeatures(results);    

单击某个功能时,我会得到它的名称并将其放在对象中。

this.currentPoint.name = this.selectClick.getFeatures().item(0).values_.name;

然后我有一个函数,可以从数据库中获取该功能的所有其他细节,并通过将其重置为值来将它们放置为角度反应形式

nameField:[data.name] 

最后,这是要素样式功能,用于处理地图上要素的文本(受原始OL示例的启发)

const getText = (feature,resolution) => {
  let text="";
  if(feature.values_.name){
    text = feature.values_.name;
  }
  else{
    text = this.currentPoint.name;
  }      
  return text;
};

我尝试做类似的事情

text = this.editingForm.get('editingFormNameGroup').get('nameField').value 

但这不会在地图上更新名称,因为正在进行文本字段编辑。

我该如何解决?

谢谢

0 个答案:

没有答案