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