有两种方法可以访问一个图层的功能。 你可以使用 getfeature() 和传递功能或使用 getnextfeature() 传回来以后的特征。 如果你正在使用一个属性过滤器( setattributefilter() )或空间滤波器 ( setspatialfilter() 或 setspatialfilterrect() )然后你必须使用getnextfeature()。
如果你读过任何的过滤者你会看到ogr_l_getnextfeature()警告文件。 这意味着,如果你使用getfeature(),代替getnextfeature(), 那么你仍然可以访问与不被滤层功能的工作。 getfeaturecount()将尊重过滤器和显示正确的数字滤波功能。 然而,在一个循环getfeaturecount()工作会导致一些有趣的结果。 使用层对象作为一个功能的迭代器或使用getnextfeature()明确应该访问功能的默认方法: