Esempio n. 1
0
 def _make_feature(self, feat_id):
     """
     Helper routine for __getitem__ that constructs a Feature from the given
     Feature ID.  If the OGR Layer does not support random-access reading,
     then each feature of the layer will be incremented through until the
     a Feature is found matching the given feature ID.
     """
     if self._random_read:
         # If the Layer supports random reading, return.
         try:
             return Feature(capi.get_feature(self.ptr, feat_id), self)
         except GDALException:
             pass
     else:
         # Random access isn't supported, have to increment through
         # each feature until the given feature ID is encountered.
         for feat in self:
             if feat.fid == feat_id:
                 return feat
     # Should have returned a Feature, raise an OGRIndexError.
     raise OGRIndexError('Invalid feature id: %s.' % feat_id)
Esempio n. 2
0
 def __iter__(self):
     "Iterates over each Feature in the Layer."
     # ResetReading() must be called before iteration is to begin.
     capi.reset_reading(self._ptr)
     for i in xrange(self.num_feat):
         yield Feature(capi.get_next_feature(self._ptr), self)
Esempio n. 3
0
 def _make_feature(self, offset):
     "Helper routine for __getitem__ that makes a feature from an offset."
     return Feature(get_feature(self._ptr, offset), self._ldefn)
Esempio n. 4
0
            # A slice was given
            start, stop, stride = index.indices(self.num_feat)
            return [self._make_feature(fid) for fid in range(start, stop, stride)]
        else:
            raise TypeError('Integers and slices may only be used when indexing OGR Layers.')

    def __iter__(self):
<<<<<<< HEAD
        "Iterates over each Feature in the Layer."
=======
        "Iterate over each Feature in the Layer."
>>>>>>> 37c99181c9a6b95433d60f8c8ef9af5731096435
        # ResetReading() must be called before iteration is to begin.
        capi.reset_reading(self._ptr)
        for i in range(self.num_feat):
            yield Feature(capi.get_next_feature(self._ptr), self)

    def __len__(self):
        "The length is the number of features."
        return self.num_feat

    def __str__(self):
        "The string name of the layer."
        return self.name

    def _make_feature(self, feat_id):
        """
        Helper routine for __getitem__ that constructs a Feature from the given
        Feature ID.  If the OGR Layer does not support random-access reading,
        then each feature of the layer will be incremented through until the
        a Feature is found matching the given feature ID.