Ciao lista,
ho notato che la funzione line_interpolate_point non lavora come mi
aspetterei se la geometry è in EPSG 4326; con geometry proiettate funziona.
allego [0] uno shapefile linestring in EPSG 4326 e vi chiedo di fare la
seguente prova:
aggiungere un campo testuale -lungo 80 e popolatelo con la seguente
espressione:
In QGIS 2.18.23 LTR il campo viene compilato ma le coordinate sono del primo
vertice e non quello atteso del centroide lungo la linea;
In QGIS 3.2.2 il campo viene compilato ma le coordinate sono del primo
vertice e non quello atteso del centroide lungo la linea;
In QGIS 3.3 dev il campo NON viene compilato, o meglio il valore è NULL
in tutte e tre le versioni l'espressione funziona bene se utilizzata per
tematizzare con geometry generator
domanda: è normale questo comportamento con EPSG 4326 oppure è un bug?
Immagino che sia legato al fatto che non vengono usate sistemi di
riferimento metrici, ma in gradi.
direi che e' un bug, ma non ho fatto prove, meglio se qualcuni conferma
provando con numeri piccoli.
Saluti, e grazie.
On 08/27/2018 07:19 PM, Totò wrote:
Ciao lista,
ho notato che la funzione line_interpolate_point non lavora come mi
aspetterei se la geometry è in EPSG 4326; con geometry proiettate funziona.
allego [0] uno shapefile linestring in EPSG 4326 e vi chiedo di fare la
seguente prova:
aggiungere un campo testuale -lungo 80 e popolatelo con la seguente
espressione:
In QGIS 2.18.23 LTR il campo viene compilato ma le coordinate sono del primo
vertice e non quello atteso del centroide lungo la linea;
In QGIS 3.2.2 il campo viene compilato ma le coordinate sono del primo
vertice e non quello atteso del centroide lungo la linea;
In QGIS 3.3 dev il campo NON viene compilato, o meglio il valore è NULL
in tutte e tre le versioni l'espressione funziona bene se utilizzata per
tematizzare con geometry generator
domanda: è normale questo comportamento con EPSG 4326 oppure è un bug?
nel senso che ho chiesto di fare una semplice verifica, ho condiviso
shapefile e descritto cosa fare;
ma nessuno ha tempo o voglia... pazienza
è l regola: ascolatano in tanti, parlano in pochi, fanno in pochissimi.
per questo è giusto stimoleare, come fai tu, ma non usiamo toni
disfattisti
Saluti, e grazie per quel che fai.
Ciao lista,
ho notato che la funzione line_interpolate_point non lavora come mi
aspetterei se la geometry è in EPSG 4326; con geometry proiettate
funziona.
allego [0] uno shapefile linestring in EPSG 4326 e vi chiedo di fare la
seguente prova:
aggiungere un campo testuale -lungo 80 e popolatelo con la seguente
espressione:
Nonostante tutto descrivo la soluzione del problema.
Nyall ha osservato, giustamente, che la funzione $length dipende dalle
impostazioni di progetto, se tali impostazioni vengono lasciate di default
la $length restituirà sempre un valore in metri (nel caso mio converte la
lunghezza in metri); questo è il motivo per cui la mia espressione non
funzionava.
Soluzione proposta da Nyall usare la seguente espressione
oppure, aggiungo io, usare sempre la prima espressione
line_interpolate_point( $geometry, $length/2)
e modificare le impostazioni di progetto, nel caso specifico:
1. usare None/Planimetrico nell'ellissoide
2. gradi nell'unità per il calcolo delle lunghezze