在OL2中,功能ID是在内部生成的。在OL5中,似乎情况并非如此,因为ID未定义。内部功能ID是否已从OL5中删除?如果不是,我需要做什么来获取ID的生成。我通过以下方式请求ID:
feature.getId()
答案 0 :(得分:0)
如果geoJson或其他来源包含要素ID,则将使用它们,否则,要素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);
}
});
答案 1 :(得分:0)
openlayers 5不会生成要素ID。
创建功能时,必须设置功能的ID(如有必要)。使用setId
方法。
现在,通过调用feature.getId()
,您将获得功能ID。
必须考虑到,在相同的地图来源中,id必须是唯一的。