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