[QGIS-it-user] Alternativa speditiva e casareccia a Easy Custom Labelling

Può capitare, se i poligoni sono troppo piccoli rispetto alla scala di visualizzazione/stampa e, alla stesso tempo, sono molto vicini tra loro (esempio: carta a scala 1:10000 degli edifici strategici in ambito di Protezione Civile, tipo sede comunale, sede della polizia locale, sede del C.O.C., ecc… posti in un Centro Storico di uno dei mille paesini appenninici, ……quindi piccoli poligoni spesso contigui tra loro) che associare a questi poligoni un’etichetta con i classici e ordinari metodi di routine, potrebbe rendere illeggibile la carta perché, per quanto si giochi sul posizionamento dell’etichetta, capita sempre che alla fine una o più etichette vadano a ricoprire uno o più poligoni, nascondendoli. In questi casi io ho sempre risolto il problema affidandomi alla potenza del plugin Easy Custom Labelling che ti consente di spostare a piacere l’etichetta e di associarla comunque al poligono di riferimento tracciando un “segmento unione” che “unisce” l’etichetta., per quanto spostata essa sia, con il poligono al quale l’etichetta si riferisce. Questo plugin però, proprio perché potente, è anche “ingombrante” e poco “snello”. Nei casi più semplici allora, in alternativa e per fare più velocemente, suggerisco a chi ne avesse bisogno, di crearsi un layer di linee, tracciarsi, per ogni poligono, dei semplici “segmenti unione” di due nodi (volendo il “segmento unione” si può fare anche sghembo, con tre o più nodi, ma ora, qui, la voglio fare semplice), avendo cura che il primo nodo cada dentro il poligono e il secondo nodo cada ove ho intenzione di posizionare l’etichetta. Quindi con Calcolatore di Campo si creano, dentro la Tabella attributi dei “segmenti unione”, due campi con le coordinate X e Y del secondo nodo di ogni “segmento unione”, il tutto tramite le funzioni $x_at(1) e $Y_at(1). Fatto ciò, con la funzione “Intersezione” si interseca il layer di poligoni con il layer dei “segmenti unione”, creando un nuovo layer di poligoni (che chiameremo L2) nella cui Tabella attributi vi sono sia i Campi dell’originario layer di poligoni (tra cui il campo dal quale vogliamo andare a leggere il contenuto dell’etichetta e che chiameremo Etich) sia i Campi del layer dei “segmenti unione”, tra i quali i Campi con le coordinate X e Y del secondo nodo dei “segmenti unione” (che chiameremo, rispettivamente, Xnodo2 e Ynodo2). A questo punto, tramite Proprietà à Etichette à Placement à Definito in funzione dei dati, è un gioco, tramite “Sovrascrittura definita dai dati” (da applicarsi sia per la Coordinata X che per la Coordinata Y), dire a QGIS di posizionare l’etichetta relativa ad un certo poligono, (che QGIS va a leggersi nel Campo Etich del layer L2) sul secondo nodo del “segmento unione” relativo a quello stesso poligono (le cui coordinate QGIS se le va a leggere, sempre nel layer L2, nei campi rispettivamente Xnodo2 e Ynodo2). Provate. Ve lo consiglio. E’ più difficile a dirsi che a farsi.

hai visto che da QGIS 3 in poi è tutto molto più semplice?
non occorre modificare nessuna tabella

guarda questo mio esempio presente nella guida #hfcqgis

http://hfcqgis.opendatasicilia.it/it/latest/esempi/sposta_etichetta_linea.html

saluti

-----
https://pigrecoinfinito.wordpress.com/
--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html

Semplicemente superlativo.
P.S. Se OpenDataSicilia mettesse un contatore di accesi a HfcQGIS, sono convinto che, da quando avete pubblicato il “manuale” per il calcolatore di campi, già oggi segnerebbe cifre a tre zeri. Complimenti !!!

Il giorno gio 26 lug 2018 alle ore 11:27 Totò <pigrecoinfinito@gmail.com> ha scritto:

hai visto che da QGIS 3 in poi è tutto molto più semplice?
non occorre modificare nessuna tabella

guarda questo mio esempio presente nella guida #hfcqgis

http://hfcqgis.opendatasicilia.it/it/latest/esempi/sposta_etichetta_linea.html

saluti


https://pigrecoinfinito.wordpress.com/

Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html


QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user

Marco wrote

Semplicemente superlativo.
P.S. Se OpenDataSicilia mettesse un contatore di accesi a HfcQGIS, sono
convinto che, da quando avete pubblicato il "manuale" per il calcolatore
di
campi, già oggi segnerebbe cifre a tre zeri. Complimenti !!!!

Grazie Marco,
abbiamo attivato tutti i contatori possibili, ad oggi abbiamo solo tre
cifre, non tre zeri!!!

purtroppo la maggioranza delle persone è pigra, vuole cerca la soluzione
facile e non quella più difficile, cioè lo studio.

saluti

-----
https://pigrecoinfinito.wordpress.com/
--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html

Quello che dici è vero ed è un peccato che molta gente non se ne convinca, perchè, a mio parere, lo studio è il miglior investimento, anche economico, che si possa fare.
Anni fa persi due o tre ore a rispolverare le mie conoscenze universitarie di idrodinamica e di idraulica per cercare di capire come funzionasse lo sciacquone del bagno (non ridete, è molto più complesso di quanto possiate immaginare) e alla fine, senza andare per tentativi random, riuscii a capire esattamente a quale altezza dover regolare il galleggiante per farlo tornare a nuova vita. Con un minuto operai la “messa a punto” dello sciacquone e mi risparmiai decine e decine di euro per l’idraulico (che, come minimo, mi avrebbe detto che era da sostituire con uno nuovo).
Ora ho investito un quarto d’ora (ma anche meno) del mo tempo “post cena” per studiarmi la logica delle funzioni “make_line”, “centroid”, ecc. (che sono il nocciolo dell’esempio suggerito da Totò), ma domani, come “interessi” maturati per questo mio investimento, potrò permettermi il lusso di risolvere il problema dell’etichettatura del mio progetto in soli 10 minuti piuttosto che nelle due o tre ore che avevo preventivato.

Il giorno gio 26 lug 2018 alle ore 13:13 Totò <pigrecoinfinito@gmail.com> ha scritto:

Marco wrote

Semplicemente superlativo.
P.S. Se OpenDataSicilia mettesse un contatore di accesi a HfcQGIS, sono
convinto che, da quando avete pubblicato il “manuale” per il calcolatore
di
campi, già oggi segnerebbe cifre a tre zeri. Complimenti !!!

Grazie Marco,
abbiamo attivato tutti i contatori possibili, ad oggi abbiamo solo tre
cifre, non tre zeri!!!

purtroppo la maggioranza delle persone è pigra, vuole cerca la soluzione
facile e non quella più difficile, cioè lo studio.

saluti


https://pigrecoinfinito.wordpress.com/

Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html


QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user

Appendice al suggerimento di Totò (anzi, alla lezione di Totò, visto che di lezioni si tratta e non di suggerimenti …a Cesare quel che è di Cesare!).
Ove, nel layer da etichettare con l’etichetta spostata e il “segmento indicatore”, vi fossero dei poligoni a “ferro di cavallo” (e quindi con il centroide che va a ricadere fuori dalla superficie del poligono), per tracciare comunque il “segmento indicatore” secondo i nostri desideri (cioè un segmento che parte da dentro il poligono e che va fino all’etichetta spostata), suggerisco di sostituire, nella regola che genera la geometria, l’espressione: centroid( $geometry ) con l’espressione: point_on_surface( $geometry ), …ossia, in sintesi, suggerisco di scrivere la seguente espressione:
make_line( point_on_surface( $geometry ), make_point(“X”,“Y”)).
A me ha dato risultati accettabili.

Il giorno gio 26 lug 2018 alle ore 11:27 Totò <pigrecoinfinito@gmail.com> ha scritto:

hai visto che da QGIS 3 in poi è tutto molto più semplice?
non occorre modificare nessuna tabella

guarda questo mio esempio presente nella guida #hfcqgis

http://hfcqgis.opendatasicilia.it/it/latest/esempi/sposta_etichetta_linea.html

saluti


https://pigrecoinfinito.wordpress.com/

Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html


QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user