[Gfoss] Come selezionare i punti nella bbox di un poligono con le API 2.0 di QGis

Luigi Pirelli luipir a gmail.com
Mer 3 Set 2014 08:36:30 CEST


http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/vector.html#iterating-over-a-subset-of-features

devi vedere le proprieta' della classe QgsFeatureRequest

2014-09-02 23:09 GMT+02:00 Luca Mandolesi <mandoluca a gmail.com>:
> Salve a tutti,
> dopo 3 giorni di moccoli mi arrendo.
> Avevo un vecchio codice che funzionava, aiutato da Sucameli che ancora
> ringrazio, ma ora con le nuove API non funzia più.
>
> Problema tanti punti di quota e tanti poligoni a cui le quote sono relative.
>
> Riesco a rintracciare quali quote stanno dentro a quale poligono, ma il
> tempo preso dallo script è lungo nel caso su ogni geometria dovessi iterare
> con il contains per capire se un punto è al suo interno. Ergo, nel vecchio
> script prima si selezionavano i punti dentro la BBOX del poligono e poi si
> verificava se effettivamente il punto era al suo interno o meno...
>
> Alla riga 29 del codice qui postato mi perdo: http://codepad.org/dTwrRtB6
>
> Prima si aveva una cosa simile ma ora non funziona più:
>
> while vlPolygons.nextFeature( featPoly ): # cicli sulle feature recuperate,
> featPoly conterra la feature poligonale attuale
> vlPoints.select( [], featPoly.geometry().boundingBox() ) # recupera i punti
> nel bbox del poligono
> featPoint = QgsFeature() # crei una feature vuota per il punto
>
> while vlPoints.nextFeature( featPoint ): # cicli sulle feature recuperate,
> featPoint conterra la feature puntale attuale
> if featPoly.geometry().contains( featPoint.geometry() ): # adesso con la
> contains() verifichi che effettivamente sia contenuto nel poligono
> lista_quote.append(featPoint.id())
> dizionario_id_contains[featPoly.id()] = lista_quote
> lista_quote = []
>
>
> Domanda: come capire la sintassi per fare un select di una serie di punti
> dentro a una feature poligonale in base al suo bbox?
>
> Grazie per una eventuale mano.
> Luca
>
> _______________________________________________
> Gfoss a lists.gfoss.it
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non hanno relazione diretta con le posizioni
> dell'Associazione GFOSS.it.
> 666+40 iscritti al 5.6.2014


Maggiori informazioni sulla lista Gfoss