<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Ciao,<br>
      per avere la distanza cumulativa si può fare senza scomodare
      python o il calcolatore di campi,<br>
      basta convertire i punti in una linea, poi con lo strumento di
      processing "Estrai vertici" si riconverte la linea in punti ed in
      automatico viene aggiunto un campo "distance" con la distanza
      cumulativa.<br>
      Se ci sono dati nella tabella attributi originaria ovviamente
      vengono persi durante la conversione il linea ma si possono
      recuperare dai punti iniziali con "Unisci attributi per
      posizione".<br>
      (Provato su QGIS 3.4)<br>
      <br>
    </p>
    <div class="moz-cite-prefix">Il 12/10/2019 23:18, andreaerdna ha
      scritto:<br>
    </div>
    <blockquote type="cite"
      cite="mid:1570915106680-0.post@n6.nabble.com">
      <pre class="moz-quote-pre" wrap="">Se può essere ancora utile per qualcuno, la procedura è molto semplice:

dato un layer "nome_layer", con un campo "campo_valore" che contiene i
valori da sommare cumulativamente, si aggiunge un campo "campo_cumulativo"
alla tabella e si usa il calcolatore di campi per aggiornare i valori di
tale campo con la seguente espressione:

if($id = 1, attribute($currentfeature, 'campo_valore'),
attribute($currentfeature, 'campo_valore') +
attribute(get_feature_by_id('nome_layer', $id-1), 'campo_cumulativo'))

Nella maggior parte dei casi il primo record di un layer ha $id =1; in
alcuni casi, per esempio gli shapefile, il primo record ha $id = 0, quindi
la condizione di test di if dovrebbe essere modificata di conseguenza
affinché l'espressione funzioni come previsto.
Alternativamente si potrebbe usare, invece che la funzione $id, la variabile
@row_number, in quanto quest'ultima dovrebbe iniziare sempre da 1 e quindi
la seguente espressione dovrebbe funzionare in ogni caso :

if(@row_number = 1, attribute($currentfeature, 'campo_valore'),
attribute($currentfeature, 'campo_valore') +
attribute(get_feature_by_id('nome_layer', @row_number-1),
'campo_cumulativo'))

La somma cumulativa avviene in ordine per feature id, quindi i record del
layer devono essere già intrinsecamente ordinati secondo l'ordine con cui si
vuole che i valori vengano sommati.

Andrea





--
Sent from: <a class="moz-txt-link-freetext" href="http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html">http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html</a>
_______________________________________________
QGIS-it-user mailing list
<a class="moz-txt-link-abbreviated" href="mailto:QGIS-it-user@lists.osgeo.org">QGIS-it-user@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/qgis-it-user">https://lists.osgeo.org/mailman/listinfo/qgis-it-user</a>
</pre>
    </blockquote>
    <div class="moz-signature">-- <br>
      Alessandro Perego
      <a href="http://www.alspergis.altervista.org/">www.alspergis.altervista.org</a></div>
  </body>
</html>