Vai al contenuto

Lunghezze dei lati di un poligono

Dato un layer poligonale, come ottenere una lista di valori delle lunghezze dei lati del poligono.

Creare un campo testuale (nello screenshot è test) sufficientemente lungo e popolarlo con la seguente espressione:

Espressione:

array_to_string(
        array_foreach(
            array_foreach(
                generate_series(1, num_geometries( segments_to_lines($geometry))),
                geometry_n(segments_to_lines($geometry),@element)), 
                    round(length(@element),2))
                ) 

Nel linguaggio umano significa: crea, per ogni poligono, un array e popolalo con la geometria dei singoli lati del poligono, infine calcola la loro lunghezza e mettili in una lista.

Osservazioni:

  1. l'espressione è generica, si puo' usare con qualsiasi poligono;
  2. per poligoni con molti lati, i calcoli richiesti sono lunghi.

Geometrie:

Generare, per ogni poligono, un array con le geometrie dei lati del poligono:

array_foreach(
    generate_series(1, num_geometries( segments_to_lines($geometry))),
                geometry_n(segments_to_lines($geometry),@element)
            )

questa espressione ci permette di fare una serie di interrogazioni come:

  1. qual è il lato più lungo e quanto vale la lunghezza;
  2. applicare tutte le funzioni geometriche relative alla geometria del lato, esempio:
  3. azimuth di un lato;
  4. centroide di un lato;
  5. coordinate di un vertice del lato n;
  6. ecc...

Il tema (la quotatura) è scaricabile da qui: https://plugins.qgis.org/styles/5/


Funzioni e variabili utilizzate: