首页 > 解决方案 > 获取功能 id openlayers5

问题描述

在 OL2 中,功能 ID 是在内部生成的。在 OL5 中,这似乎不是这种情况,因为 id 是未定义的。内部功能 ID 是否已从 OL5 中删除?如果不是,我需要做什么才能生成 id。我通过以下方式请求 ID:

特征.getId()

标签: openlayers-5

解决方案


如果 geoJson 或其他源包含将使用它们的特征 id,否则特征 id 将未定义。如果需要,您可以生成自己的 ID。如果源包含带有和不带 id 的混合功能,您需要确保自动生成的 id 是唯一的(例如使用前缀)。

var featureId = 0;
vector.getSource().on('addfeature', function(e){
  featureId++;
  if (!e.feature.getId()) {
    e.feature.setId('auto-gen-'+featureId);
  }
});

推荐阅读