是否可以在不设置功能ID的情况下删除功能?

时间:2016-01-04 12:34:32

标签: openlayers-3

我想在使用Openlayers3时从图层中删除要素。我知道在创建功能时我们可以feature.setId(id)并使用feature.getId()来删除它们。但是,如果从数据库或地理服务器加载功能,则它们没有正确的“ID”属性。

这是一种在不设置功能ID的情况下删除所选功能的方法吗?

1 个答案:

答案 0 :(得分:1)

您必须更清楚地提出问题。 是否要从数据库中删除这些功能,或者只是想从客户端删除这些功能,并且不对DB执行任何操作?????

如果你没有id,我猜应该有一些相同的功能属性。我的意思是如果你执行了一个sql删除脚本,你不会使用一个标识符来删除它们吗?

所以我按下你的功能有一个主键或相同的东西来区分它们。

因此,假设您的胎儿有一个名为“MYPK”的相同列。如果是这样,您可以迭代通过功能并绘制相同的属性

var pksToDelete = new Array();
 for (var i=0;i<features.length;i++){
 pksToDelete.push(features[i].get('MYPK'));
 }

现在,您将所有功能的唯一ID放入数组中。 如果要从DB中删除它们,请使用这些ID获取wfs-t请求,然后刷新您的图层。

更好地提供您使用的示例代码并详细说明您的目的,以便我可以为您提供详细的帮助。

相关问题