[QGIS-pt] Iterações sobre atributos selecionados.

Alexandre Neto senhor.neto at gmail.com
Mon Nov 30 08:31:03 PST 2015


Peço desculpa, só reparei agora que o algoritmo corre directamente com base
no OGR. Por isso os métodos que estava a sugerir (que são de pyqgis) não
funcionam.

Fernando M. Roxo da Motta <petro  roxo.org> escreveu no dia seg, 30/11/2015
às 14:55:

> On Mon, 30 Nov 2015 11:04:03 +0000, Alexandre Neto
> <senhor.neto  gmail.com> wrote:
>
>
> > Bom dia
>
>   Bom dia Alexandre.
>
> >
> > Fernando M. Roxo da Motta <petro  roxo.org> escreveu no dia sáb,
> > 28/11/2015 às 13:45:
> >
> > >
> > >   Eu tenho duas coleções de pontos, por exemplo Rec e Fon.   Em
> > > princípio são dois shapefiles.   Em linhas gerais, estou
> > > percorrendo as duas coleções como:
> > >
> > > RPts = ogr.Open(Rec, False)
> > > Rs = RPs.GetLayer(0)
> > > NR = Rs.GetFeatureCount()
> > >
> > > for i in xrange(NumREC):
> > >     R = Rs.GetNextFeature()
> > >     {faz alguma coisa com os R's}
> > >
> > >
> > Acho que podes iterar os elementos de uma camada sem necessitar de os
> > contar antes:
>
>   Ok.  A contagem foi como um teste extra com relação à "sanidade" da
> camada.   A contagem está sendo obtida da seguinte maneira:
>
>   NR = Rs.GetFeatureCount()
>   if NR == 0:
>         raise GeoAlgorithmExecutionException(
>                 'There are no Points in input vector Layer')
>
>   Talvez eu possa iterar como sugerido abaixo e se ao final do laço a
> contagem for zero emitir a exceção.
>
> >
> > for feature in layer.getFeatures():
> >     # Faz qualquer coisa com cada elemento
> >
> > Honestamente, não sei se é mais eficiente, mas fica mais simples
> >
>
>   Concordo, mas não sei se a forma como faço o acesso está errado
> (talvez crie uma instância de um tipo diferente de objeto), mas eu
> estou obtendo uma mensagem de erro.   Usei o método dir() sobre o
> objeto "Rs" e o método "getFeatures()" não aparece listado:
>
> ['AlterFieldDefn', 'Clip', 'CommitTransaction', 'CreateFeature',
> 'CreateField', 'CreateFields', 'DeleteFeature', 'DeleteField',
> 'Dereference', 'Erase', 'GetExtent', 'GetFIDColumn', 'GetFeature',
> 'GetFeatureCount', 'GetFeaturesRead', 'GetGeomType',
> 'GetGeometryColumn', 'GetLayerDefn', 'GetName', 'GetNextFeature',
> 'GetRefCount', 'GetSpatialFilter', 'GetSpatialRef', 'Identity',
> 'Intersection', 'Reference', 'ReorderField', 'ReorderFields',
> 'ResetReading', 'RollbackTransaction', 'SetAttributeFilter',
> 'SetFeature', 'SetIgnoredFields', 'SetNextByIndex', 'SetSpatialFilter',
> 'SetSpatialFilterRect', 'StartTransaction', 'SymDifference',
> 'SyncToDisk', 'TestCapability', 'Union', 'Update', '__bool__',
> '__class__', '__delattr__', '__dict__', '__doc__', '__format__',
> '__getattr__', '__getattribute__', '__getitem__', '__hash__',
> '__init__', '__iter__', '__len__', '__module__', '__new__',
> '__nonzero__', '__reduce__', '__reduce_ex__', '__repr__',
> '__setattr__', '__sizeof__', '__str__', '__subclasshook__',
> '__swig_getmethods__', '__swig_setmethods__', '__weakref__', 'next',
> 'schema', 'this']
>
>
> >
> > >   Esta seleção está funcionando, até onde consegui testar.  A minha
> > > pergunta é:  Uma vez realizada a seleção, como posso iterar sobre a
> > > lista de Rec's selecionados?
> > >
> >
> > Se tens uma layer com elementos seleccionados, pode usar o método
> > selectedFeatures()
> >
> > for feature in layer.selectedFeatures():
> >     #Fazer qq coisa com cada elemento
>
>   Ainda não testei esta opção, na verdade o método "selectedFeatures()"
> também não aparece na lista acima.  :(
>
>
>   Obrigado pela sua atenção.
>
>
>   Sds.
>
>
> >
> > Cumprimentos,
> > Alexandre Neto
>
>
>
>
>
>
>
>
>   Roxo
>
> --
> ---------------- Non luctari, ludare -------------------+ WYSIWYG
> Fernando M. Roxo da Motta <petro  roxo.org>              | Editor?
> Except where explicitly stated I speak on my own behalf.|  VI !!
>       ( Usuário Linux registrado #39505 )               | I see text,
> ------------ Quis custodiet ipsos custodes?-------------+ I get text!
>
> _______________________________________________
> QGIS-pt mailing list
> QGIS-pt  lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-pt
>
-- 
Alexandre Neto
http://gisunchained.wordpress.com
-------------- próxima parte ----------
Um anexo em HTML foi limpo...
URL: <http://lists.osgeo.org/pipermail/qgis-pt/attachments/20151130/377b1f69/attachment.html>


More information about the QGIS-pt mailing list