Alessandro Pasotti ha scritto: > Il venerdì 02 ottobre 2009, Antonio Falciano ha scritto: >> Alessandro Pasotti ha scritto: >>> Il venerdì 02 ottobre 2009, Antonio Falciano ha scritto: >>>> Alessandro Pasotti ha scritto: >>>>> Ciao (scusate il cross-post errato in lista soci), >>>>> >>>>> devo calcolare i dislivelli in discesa e in salita di una polilinea 3D, >>>>> sapete se (e come) si può fare con postgis? >>>> SELECT ST_ZMAX(the_geom) as z_max, ST_ZMIN(the_geom) as z_min, >>>> (ST_ZMAX(the_geom) - ST_ZMIN(the_geom)) as delta_z FROM streets; >>>> >>>> se ti interessa il dislivello esistente in assoluto, mentre per quello >>>> relativo occorre usare anche ST_PointN. >>>> >>>> ciao >>>> Antonio >>> Grazie! >>> >>> se ho capito bene le prime due funzioni restituiscono quote minime e >>> massime, >> ok >> >>> se voglio sapere i dislivelli relativi devo quindi scrivere una funzione >>> che iterando su tutti i punti della polilinea, sommi tutti i dislivelli >>> in un verso (convenzionalmente salita) e in quello opposto (discesa) ? >> No, perche' per via dei segni perderesti per strada buona parte >> dell'informazione. Cosi' facendo calcolaresti il dislivello tra il punto >> iniziale e finale e, a tal fine, basterebbe semplicemente recuperare la >> z di questi due agendo con ST_PointN (v. 2° es. in >> http://postgis.refractions.net/docs/ST_PointN.html >> Purtroppo cosi' si perdono tutti i dislivelli intermedi. > > > Ho dato per scontato che userei due variabili, una per accumulare i > dislivelli > in discesa e l'altra per quelli in salita (pseudo codice): > > for punto in linea > if punto_tmp > if punto.z > punto_tmp.z > salita += punto.z - punto_tmp.z > else > discesa += punto_tmp.z - punto.z > punto_tmp = punto > > > sbaglio qualcosa?
ok, cosi' va meglio... ma, in ogni caso, mi calcolerei la pendenza, poiche' uno stesso dislivello lo puoi avere lungo 1 km opp. dopo soli 5 m di tracciato, ti pare? Un'altra strategia potrebbe essere quella di "esplodere" le polilinee in linee, calcolare agevolmente il dislivello e quindi la pendenza di ogni singola linea ed, infine, riaggregare il tutto mediando le pendenze. >> Inoltre, potresti considerare anche la tipologia di tracciato (sterrato, >> pavimentato, ecc.) in modo considerare il grado di difficolta' nella sua >> percorrenza. > > Ho anche le variabili del mezzo: a piedi, in bici ecc. ma non so se mi > spingerò così avanti. Altre variabili da tenere conto nella funzione di costo potrebbero essere la tortuosita' del tracciato e le condizioni psico-fisiche del soggetto che lo percorre, ad es. con o senza grappino! :) ciao -- Antonio Falciano http://www.linkedin.com/in/antoniofalciano _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [email protected] http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it.
