| 125 | |
| 126 | === Layers with attribute filters {{{SetAttributeFilter()}}} will only return filtered features when using {{{GetNextFeature()}}} === |
| 127 | |
| 128 | If you read the documentation for {{{SetAttributeFilter()}}} carefully you will see the caveat about {{{OGR_L_GetNextFeature()}}}. This means that you can still access and work with features from the layer that are not covered by the filter. In combination with {{{GetFeatureCount()}}} as a loop, this can lead to some subtle confusion. Iterating over the {{{Layer}}} object or using {{{GetNextFeature()}}} should be the default method for accessing features: |
| 129 | |
| 130 | {{{ |
| 131 | #!python |
| 132 | >>> lyr = inDataSource.GetLayer() |
| 133 | >>> lyr.SetAttributeFilter("PIN = '0000200001'") # this is a unique filter for only one record |
| 134 | >>> for i in range( 0, lyr.GetFeatureCount() ): |
| 135 | ... feat = lyr.GetFeature( i ) |
| 136 | ... print feat # this will print out every feature in the layer disregarding the filter |
| 137 | ... |
| 138 | }}} |
| 139 | |