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

Marco Spaziani spaziani.marco a gmail.com
Mer 25 Lug 2018 07:07:19 PDT


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.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.osgeo.org/pipermail/qgis-it-user/attachments/20180725/57972af2/attachment.html>


Maggiori informazioni sulla lista QGIS-it-user