Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 21
  1. #11
    Allora, con i 5 punti che ti ho dato funziona perfettamente infatti, il problema è che invece impazzisce lo script con tutti i 167 punti della mia tabella.

    Sto cercando di capire come mai... non è che se esiste qualche coppia di punti uguali cioè senza distanza tra loro la cosa può dare noia?

    Non sembrerebbe, però non capisco ad un certo punto del ciclo mi restituisce come distanza e distanza totale NAN mentre fino al punto precedente era tutto ok...

    Ho fatto un echo per vedere quali sono i 2 punti dove impazzisce, come vedi sgarra sul 4 punto che ti ho postato mentre fino a quello tutto era corretto, anche se tra 2 punti la distanza era 0....


    lat1:46.5564
    lon1:11.9226
    lat2:46.5564
    lon2:11.9226
    distanza:0
    somma distanze:1.03834882501

    lat1:46.5563
    lon1:11.9226
    lat2:46.5563
    lon2:11.9226
    distanza:0.00690881139716
    somma distanze:1.0452576364


    lat1:46.5563
    lon1:11.9225
    lat2:46.5563
    lon2:11.9225
    distanza:0.00475057752753
    somma distanze:1.05000821393


    lat1:46.5563
    lon1:11.9225
    lat2:46.5563
    lon2:11.9225
    distanza:NAN
    somma disatanze:NAN

  2. #12
    Controllando tutti i punti nel database ho capito quali sono quelli che danno noia:

    ID latitude longitude orario
    10 46.5563 11.9225 13:37:36
    11 46.5563 11.9225 13:37:37
    12 46.5563 11.9225 13:37:38
    13 46.5563 11.9225 13:37:39

    di coppie di punti uguali come queste ce ne sono altre ma non danno fastidio.. boh!
    Cancellandoli lo script funziona però non devo cancellarli, sono dati dal mio gps...

    Anche con altri tracciati l'errore continua a presentarsi (sembra in punti dove le coordinate sono simili)

  3. #13
    E' quasi sicuramente un errore di approssimazione... io dividerei la tua funzione e cercherei di capire quale è la parte che ti restituisce nan e prenderei provvedimenti di conseguenza. Altrimenti (se solo le coppie di punti esattamente uguali ti da noia) farei un semplice if(i due punti sono uguali) (stringhe uguali) allora return 0 direttamente, in modo da sorvolare il problema

    ps. oppure visto che le distanze sono così ravvicinate, che ne dici di tornare nel 1400, dimenticarsi che la terra è rotonda e usare un bel teorema di pitagora? (peraltro molto meno esoso in termini di carico computazionale)

    editttt: la soluzione.
    The Haversine formula ‘remains particularly well-conditioned for numerical computation even at small distances’ – unlike calculations based on the spherical law of cosines.
    http://www.movable-type.co.uk/scripts/latlong.html
    Poi se cerchi trovi implementazioni in php di questa formula. ciaoooo

  4. #14
    Ok ho fatto come dicevi, funziona tutto! non sai quanto ti amo!
    Grazie ancora!

    Ultima domanda, se volessi inserire la distanza tra i 2 punti nel database in questo modo è possibile? (non credo perchè la distanza è data da una coppia di punti giusto?)

    id latitude longitude time distance
    12 46.5602 11.9288 13:38:25 (qui la distanza)

  5. #15
    son contento che funzioni tutto. Ora, io non so come hai organizzato il tuo db, e nemmeno cosa ci devi fare, ma se fossi in te la distanza che inserirei nel db sarebbe quella accumulata, ovvero 0 per il primo punto, dist_0-1 per il primo punto, dist_0-1+dist_1-2 per il secondo e cosi via... cos' che sia semplice poi ricavare la distanza tra due punti qualsiasi secondo il percorso. notte.

  6. #16
    Ok ci provo, grazie di tutto!

  7. #17
    Perfetto funziona, sai mica come convertire in metri la distanza che ottengo?

    tipo questa: 0.018906712

  8. #18
    no ho detto una cavolata, in metri è già, è che non mi torna il calcolo della velocità, mi da picchi esagerati, eppure la distanza totale è quella giusta...

  9. #19
    ma la media su tutto il percorso torna?

  10. #20
    si la media torna, è solo qualche picco di velocità che sballa rispetto a quello dato dal gps,
    come calcolo per la velocità ho usato distanza/tempo*3.6 e mi restituidce i km/h dovrebbe essere giusta...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.