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
_______________________________________________ [email protected] 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
