Punti casuali nel poligono usando il generatore di geometrie

Generare ‘Punti casuali nel poligono‘ tramite il generatore di geometrie e usando i dati della tabella attributi.

QGIS
geom_from_wkt('MULTIPOINT (' ||
 array_to_string( 
  array_remove_all( 
    array_foreach( generate_series(1,
    "fid"*20 -- campo tabella atributi
     ), 
     with_variable( 'rnd_p', 
	 make_point(  randf( x_min( $geometry), x_max( $geometry)),
						  randf( y_min( $geometry), y_max( $geometry))),
if( 
within( @rnd_p, $geometry),
to_string(x(@rnd_p)) || ' ' || to_string(y(@rnd_p)), 
to_string(x(closest_point($geometry, @rnd_p))) || ' ' || to_string(y((closest_point($geometry,@rnd_p)))))
               )
    ),''
  ),','
) || ')'
)

L’espressione di sopra è leggermente modificata rispetto a quella proposta da Klas: nella condizione if ho aggiunto il caso in cui i punti cadono fuori dal poligono, in questo caso con la funzione closet_point vengono attaccate al perimetro!!!

Tweet:


Riferimenti:

GitHub: https://github.com/klakar/QGIS_resources/blob/master/collections/Geosupportsystem/symbol/random_points_geometry_generator.md

Pubblicità

2 pensieri su “Punti casuali nel poligono usando il generatore di geometrie

  1. Buongiorno Salvatore,
    secondo te è possibile generare invece un poligono che raggruppi un set di punti con stessi attributi (ad esempio un gruppo di punti con stesso attributo ID=1)?
    Grazie e buona giornata.

    "Mi piace"

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.