[QGIS-it-user] quotatura + etichette di elementi lineari

Ciao,
nella lista Qgis-user in questi giorni c'è stato uno scambio di e-mail
interessante circa la quotatura di oggetti cartografici [0].
Vi segnalo la soluzione di Paolo Cavallini [1] perché credo possa
interessare qualcuno che non legge quella lista.

Inoltre approfitto per fare una domanda circa le etichette di elementi
lineari. E' possibile impedire che l'etichetta si sposti in base
all'"inquadratura" della mappa, mantenendo ad esempio la posizione
fissa al centro della linea?

Qui [2] una immagine di esempio; l'etichetta in alto a dx si è spostata
per rimanere nell'inquadratura...

Grazie a tutti, saluti,
Giovanni

[0]
https://lists.osgeo.org/pipermail/qgis-user/2018-February/041415.html
[1]
https://lists.osgeo.org/pipermail/qgis-user/2018-February/041428.html
[2] https://ibb.co/jzHPuR

Ciao!

Per mantenere le etichette sulla linea propongo: posizionamento - sulla linea [1]. Funziona?

Qui [2] un esempio.

Gabriela

[1] https://drive.google.com/file/d/14gTAqOmEp0yRz55gA3RBcalkn4UEQbeC/view?usp=sharing

[2] https://drive.google.com/file/d/1o9yNTIrTGdpRAxrzRTXKUoO0uTCMRds-/view?usp=sharing


Da: Giovanni jynxtor@gmail.com
A: qgis-it-user@lists.osgeo.org
Inviato: Venerdì 2 Febbraio 2018 11:05
Oggetto: [QGIS-it-user] quotatura + etichette di elementi lineari

Ciao,

nella lista Qgis-user in questi giorni c’è stato uno scambio di e-mail

interessante circa la quotatura di oggetti cartografici [0].

Vi segnalo la soluzione di Paolo Cavallini [1] perché credo possa

interessare qualcuno che non legge quella lista.

Inoltre approfitto per fare una domanda circa le etichette di elementi

lineari. E’ possibile impedire che l’etichetta si sposti in base

all’“inquadratura” della mappa, mantenendo ad esempio la posizione

fissa al centro della linea?

Qui [2] una immagine di esempio; l’etichetta in alto a dx si è spostata

per rimanere nell’inquadratura…

Grazie a tutti, saluti,

Giovanni

[0]

https://lists.osgeo.org/pipermail/qgis-user/2018-February/041415.html

[1]

https://lists.osgeo.org/pipermail/qgis-user/2018-February/041428.html

[2] https://ibb.co/jzHPuR


QGIS-it-user mailing list

QGIS-it-user@lists.osgeo.org

https://lists.osgeo.org/mailman/listinfo/qgis-it-user

Ti rispondo riguardo il punto 2.

Si è possibile basta utilizzare il posizionamento manuale dell’etichetta. La sposti e la ruoti come ti va meglio e li resta. Nel tuo caso puoi applicare di default le coordinate del punto mediano della linea. https://gis.stackexchange.com/questions/19654/manually-placing-labels-in-qgis

Se sai usare un po’ qgis visto che sono su linee puoi far calcolare in automatico la posizione (x e y del punto mediano e la rotazione la ottieni dalla curva calcolando l’azimuth fra punto iniziale e finale della linea.

Scusa la risposta un po’ scarna, spero di essermi spiegato.

Ciao

Sergio

···

Il giorno 2 febbraio 2018 10:05, Giovanni <jynxtor@gmail.com> ha scritto:

Ciao,
nella lista Qgis-user in questi giorni c’è stato uno scambio di e-mail
interessante circa la quotatura di oggetti cartografici [0].
Vi segnalo la soluzione di Paolo Cavallini [1] perché credo possa
interessare qualcuno che non legge quella lista.

Inoltre approfitto per fare una domanda circa le etichette di elementi
lineari. E’ possibile impedire che l’etichetta si sposti in base
all’“inquadratura” della mappa, mantenendo ad esempio la posizione
fissa al centro della linea?

Qui [2] una immagine di esempio; l’etichetta in alto a dx si è spostata
per rimanere nell’inquadratura…

Grazie a tutti, saluti,
Giovanni

[0]
https://lists.osgeo.org/pipermail/qgis-user/2018-February/041415.html
[1]
https://lists.osgeo.org/pipermail/qgis-user/2018-February/041428.html
[2] https://ibb.co/jzHPuR


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

Sergio Gollino

Questo messaggio, comprensivo di eventuali allegati, è ad uso esclusivo del destinatario e potrebbe contenere informazioni riservate; se è stato recapitato per errore ci scusiamo per l’accaduto e Vi invitiamo cortesemente a darcene notizia provvedendo alla sua distruzione.

Vi ricordiamo che la diffusione, l’utilizzo e/o la conservazione dei dati ricevuti per errore costituiscono violazione alle disposizioni del D.Lgs. n. 196/2003 “Codice in materia di protezione dei dati personali”.

Giovanni Pasini wrote

... E' possibile impedire che l'etichetta si sposti in base
all'"inquadratura" della mappa, mantenendo ad esempio la posizione
fissa al centro della linea?
...

Ciao,
forse ci sono soluzioni migliori ma io avrei trovato questa (ho provato su
QGIS 2.99 ma credo che possa funzionare anche sulla 2.18):

Nelle opzioni di posizionamento delle etichette c'è la sezione "Definiti in
funzione dei dati" dove è possibile specificare campi con coordinate x e y a
cui fissare le etichette; si può anche specificare un campo per la
rotazione.

I campi contenenti tali parametri possono essere creati con il "Calcolatore
di campi" con le seguenti espressioni:
campo x: *x( line_interpolate_point( $geometry, ($length /2)) )*
campo y: *y( line_interpolate_point( $geometry, ($length /2)) )*
campo angolo: *line_interpolate_angle( $geometry, ($length /2)) + 90
*

-----
Alessandro Perego
http://www.alspergis.altervista.org
--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html

Ciao,
grazie a tutti per le risposte!

Confermo che facendo come dite voi funziona (vedi sotto).

Pensavo ci fosse un modo meno "dispendioso" per inchiodare le etichette
in modo automatico (del resto il fatto che si spostino è una comodità
aggiuntiva..., certamente utile nella maggior parte dei casi). [1]

Il ricorso alla aggiunta dei campi x,y (e rotazione) funziona per
raggiungere l'obiettivo, oppure, se non serve piazzare le etichette a
mano, si può utilizzare direttamente l'espressione come x e y senza
aggiungere campi in tabella [2].

In alternativa per chi usa versioni precedenti alla 2.18 e non c'è
line_interpolate_point funziona anche questa:

(x(start_point( $geometry ))+x(end_point($geometry)))/2
(y(start_point( $geometry ))+y(end_point($geometry)))/2

Invece non ho trovato un modo, suggerito da Sergio, per la rotazione:

la rotazione la ottieni dalla curva calcolando l'azimuth fra punto
iniziale e finale della linea.

sono arrivato fino a qui
degrees(azimuth(start_point($geometry ),end_point($geometry)))

ma non va bene, ma per ora mi accontento...

Grazie di nuovo a tutti, buona serata!

Giovanni

[1] Ad esempio per geometrie poligonali impostando l'etichettatura così:
Posizionamento:
Offset dal centroide
intero poligono
Forza punto dentro poligono

l'etichetta non subisce spostamenti (automatici).

Nel caso delle linee invece, non mi sembrano esserci impostazioni simili
a quelle per i poligoni.

[2] https://ibb.co/ncnHix

Il giorno Fri, 2 Feb 2018 07:05:40 -0700 (MST)
alper78 <alsper78@gmail.com> ha scritto:

Giovanni Pasini wrote
> ... E' possibile impedire che l'etichetta si sposti in base
> all'"inquadratura" della mappa, mantenendo ad esempio la posizione
> fissa al centro della linea?
> ...

Ciao,
forse ci sono soluzioni migliori ma io avrei trovato questa (ho
provato su QGIS 2.99 ma credo che possa funzionare anche sulla 2.18):

Nelle opzioni di posizionamento delle etichette c'è la sezione
"Definiti in funzione dei dati" dove è possibile specificare campi
con coordinate x e y a cui fissare le etichette; si può anche
specificare un campo per la rotazione.

I campi contenenti tali parametri possono essere creati con il
"Calcolatore di campi" con le seguenti espressioni:
campo x: *x( line_interpolate_point( $geometry, ($length /2)) )*
campo y: *y( line_interpolate_point( $geometry, ($length /2)) )*
campo angolo: *line_interpolate_angle( $geometry, ($length /2)) +
90 *

-----
Alessandro Perego
http://www.alspergis.altervista.org
--
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

Ciao,

perchè degrees(azimuth( start_point( $geometry ), end_point( $geometry ))) non va bene? che problema ti da?

···

Il giorno 7 febbraio 2018 18:42, Giovanni Pasini <jynxtor@gmail.com> ha scritto:

Ciao,
grazie a tutti per le risposte!

Confermo che facendo come dite voi funziona (vedi sotto).

Pensavo ci fosse un modo meno “dispendioso” per inchiodare le etichette
in modo automatico (del resto il fatto che si spostino è una comodità
aggiuntiva…, certamente utile nella maggior parte dei casi). [1]

Il ricorso alla aggiunta dei campi x,y (e rotazione) funziona per
raggiungere l’obiettivo, oppure, se non serve piazzare le etichette a
mano, si può utilizzare direttamente l’espressione come x e y senza
aggiungere campi in tabella [2].

In alternativa per chi usa versioni precedenti alla 2.18 e non c’è
line_interpolate_point funziona anche questa:

(x(start_point( $geometry ))+x(end_point($geometry)))/2
(y(start_point( $geometry ))+y(end_point($geometry)))/2

Invece non ho trovato un modo, suggerito da Sergio, per la rotazione:

la rotazione la ottieni dalla curva calcolando l’azimuth fra punto
iniziale e finale della linea.

sono arrivato fino a qui
degrees(azimuth(start_point($geometry ),end_point($geometry)))

ma non va bene, ma per ora mi accontento…

Grazie di nuovo a tutti, buona serata!

Giovanni

[1] Ad esempio per geometrie poligonali impostando l’etichettatura così:
Posizionamento:
Offset dal centroide
intero poligono
Forza punto dentro poligono

l’etichetta non subisce spostamenti (automatici).

Nel caso delle linee invece, non mi sembrano esserci impostazioni simili
a quelle per i poligoni.

[2] https://ibb.co/ncnHix

Il giorno Fri, 2 Feb 2018 07:05:40 -0700 (MST)
alper78 <alsper78@gmail.com> ha scritto:

Giovanni Pasini wrote

… E’ possibile impedire che l’etichetta si sposti in base
all’“inquadratura” della mappa, mantenendo ad esempio la posizione
fissa al centro della linea?

Ciao,
forse ci sono soluzioni migliori ma io avrei trovato questa (ho
provato su QGIS 2.99 ma credo che possa funzionare anche sulla 2.18):

Nelle opzioni di posizionamento delle etichette c’è la sezione
“Definiti in funzione dei dati” dove è possibile specificare campi
con coordinate x e y a cui fissare le etichette; si può anche
specificare un campo per la rotazione.

I campi contenenti tali parametri possono essere creati con il
“Calcolatore di campi” con le seguenti espressioni:
campo x: x( line_interpolate_point( $geometry, ($length /2)) )
campo y: y( line_interpolate_point( $geometry, ($length /2)) )
campo angolo: *line_interpolate_angle( $geometry, ($length /2)) +
90 *


Alessandro Perego
http://www.alspergis.altervista.org

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


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

Sergio Gollino

Questo messaggio, comprensivo di eventuali allegati, è ad uso esclusivo del destinatario e potrebbe contenere informazioni riservate; se è stato recapitato per errore ci scusiamo per l’accaduto e Vi invitiamo cortesemente a darcene notizia provvedendo alla sua distruzione.

Vi ricordiamo che la diffusione, l’utilizzo e/o la conservazione dei dati ricevuti per errore costituiscono violazione alle disposizioni del D.Lgs. n. 196/2003 “Codice in materia di protezione dei dati personali”.

Il giorno Thu, 8 Feb 2018 09:06:49 +0100
Sergio Gollino <gollinosergio@gmail.com> ha scritto:

Ciao,

perchè degrees(azimuth( start_point( $geometry ),
end_point( $geometry ))) non va bene? che problema ti da?

Ciao,
ho trovato (vedi anche qui[0]), così sembra funzionare!

90 - line_interpolate_angle($geometry, ($length /2))

oppure anche:

90 - degrees(azimuth(start_point($geometry), end_point($geometry)))

Grazie ancora, saluti,
Giovanni

[0]
https://gis.stackexchange.com/questions/228269/label-polylines-parallel-but-off-line-end