Bordi poligono

Buongiorno a tutti,
Mi sto interessando a QGIS per uso personale e non professionale e quindi spero mi perdoniate per la richiesta forse banale.
Sto compilando uno shape di aree ti tipo poligonale. Chiedevo se è possibile selezionare uno o più dei segmenti del contorno di singolo poligono e stabilire che abbia un tratto grafico diverso dagli altri segmenti: ad es. linea tratteggiata anziché continua, ecc.
Ringrazio in anticipo per la cortese attenzione
Dany

non escludo che ci possa essere qualche algoritmo di geoprocessing che consenta di farlo in un unico passaggio…

Io tuttavia opererei in questo modo:

  1. duplica il tuo layer poligonale e, fra le opzioni di Styling, nascondi il contorno (Stroke strike → No line)
  2. fra gli strumenti di geoprocessing, attiva da Vector geometry → Polygons to Lines (crei così un vettore lineare che rappresenta il perimetro del tuo poligono)
  3. sul nuovo vettore lineare sempre da Vector geometry → Explode lines (suddividi così il perimetro fra gli n segmenti di cui si compone)
  4. tematizzi quindi come vuoi i singoli segmenti

d.le

Buonasera,
sì, si può fare usando le espressioni e i layer di stile.

Sotto un esempio:

L’espressione base è:

geometries_to_array(segments_to_lines( $geometry))[1]

il numero tra parentesi quadre indica l’indice del lato del poligono.

Guardando lo screenshot:

  • il punto nero indica il vertice start del poligono;
  • la linea rossa indica il lato con indice 0 del poligono
  • la linea con i pollini attorno, indica il segmento con indice 1

scusa la brevità della risposta, ma se indicassi anche il criterio secondo cui vorresti selezionare i vari segmenti, potrei anche farci un video demo.

saluti

questo tipo di vestizione viene “creata” ogni volta? cioè ad esempio ogni volta che mi sposto lungo la mappa (pan)?
perché il timore che ho ogni volta che vedo queste soluzioni elegantissime è che vadano bene per dataset di “pochi” elementi e che diventino ingestibili al crescere della numerosità degli elementi del dataset.
sbaglio?

s.

Il giorno mar 21 gen 2025 alle ore 16:50 Totò Fiandaca via OSGeo Discourse <noreply@discourse.osgeo.org> ha scritto:

pigreco
January 21

Dany:

Chiedevo se è possibile selezionare uno o più dei segmenti del contorno di singolo poligono e stabilire che abbia un tratto grafico diverso dagli altri segmenti: ad es. linea tratteggiata anziché continua, ecc.

Buonasera,
sì, si può fare usando le espressioni e i layer di stile.

Sotto un esempio:

L’espressione base è:

geometries_to_array(segments_to_lines( $geometry))[1]

il numero tra parentesi quadre indica l’indice del lato del poligono.

Guardando lo screenshot:

  • il punto nero indica il vertice start del poligono;
  • la linea rossa indica il lato con indice 0 del poligono
  • la linea con i pollini attorno, indica il segmento con indice 1

scusa la brevità della risposta, ma se indicassi anche il criterio secondo cui vorresti selezionare i vari segmenti, potrei anche farci un video demo.

saluti

Salve a tutti e grazie per i vari e solleciti suggerimenti che proverò.
In realtà non c’è una regola codificabile per cui alcuni poligoni abbiano segnenti da differenziare, ma l’attività è da fare selezionando il poligono che interessa di volta in volta.
Cerco di spiegarmi. Per la maggior parte i contorni seguono le linee di aste stradali in layer sottostanti; per alcuni il segmento/i segue diciamo un percorso “immaginario”, nel senso che non segue un corrispondente percorso stradale (ad es. In mezzo a terreni). Da qui la mia intenzione di distinguere il tratto del contorno.
Non so se l’impostazione è corretta o se ci siano modi più eleganti di affrontare il caso.
Grazie ancora.
Dany

Se non c’è una regola allora dovresti creare un attributo e popolarlo con un valore booleano (1,0), 1: significa sì, modifica; 0: no, lascialo per come è.

Poi usare questo attributo nell’espressione che ho condiviso tramite un IF.

Sì, Stefano, viene sempre aggiornata.

No, non sbagli,
perché il tema dipende da funzioni di aggregazione e potrebbe rallentare parecchio.

saluti

Salve,
Chiedo scusa ma per problemi di salute sono riuscito a provare solo ora il suggerimento.

Purtroppo immagino a motivo della mia incompetenza non sono riuscito a ricreare e ad applicare al mio layer la soluzione suggerita.
Chiedo cortesemente se:

  • potrebbe dettagliare gli steps per arrivare alla creazione delle geometrie?
  • con questa soluzione posso singolarmente definire a quale poligono e a quale suo segmento, applicare lo stile diversificato?

Grazie ancora per la pazienza. Una buona giornata

Ciao,
ho realizzato un video

saluti

Molte grazie, come sempre chiaro e ben fatto.
Probabilmente dovrò aggiungere alla espressione un IF condizionata al valore presente in un ulteriore attributo, in modo da non applicare espressione ai poligoni che non necessitano dello stile.
Comunque sono riuscito a creare lo start_point, mentre non mi recepisce la parte sulla linea; allego uno printscreen
stile.bmp (3.5 MB)

Dove sbaglio? (Uso QGIS3.18 su Win 7).
Una buona giornata

Purtroppo la funzione geometries_to_array è stata introdotta a partire da QGIS 3.28; devi aggiornare la tua versione di QGIS.

SALUTI