Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [mysql] Calcolo distanza tra due coordinate

    Salve,
    io ho due coppie di coordinate long. e lat.

    Date le due coppie lat_A long_A e lat_B e long_B, posso calcolare la distanza tra i due punti?
    Ho una semplice formula che lo fa in php, ma vorrei che fosse fatto direttamente nella query in modo da poter ordinare il result set in base a questo risultato.

    Suggerimenti?
    Ciao!

  2. #2
    prendi delle ipotetiche coordinate di partenza 0:0 e da li calcoli con pitagora le distanze tra i punti. per maggiore precisione se il percorso non è retto lo puoi spezzare. lo puoi fare tranquillamente in una procedura sql...

  3. #3
    la funzione php è questa:
    Come convertirla in MYSQL?

    Codice PHP:
        $distance sin(deg2rad($lat_A)) 
            * 
    sin(deg2rad($lat_B)) 
            + 
    cos(deg2rad($lat_A)) 
            * 
    cos(deg2rad($lat_B)) 
            * 
    cos(deg2rad($long_A $long_B)); 

        
    $distance = (rad2deg(acos($distance))) * 69.09 
    Ciao!

  4. #4
    radians() in mysql equivale a deg2rad() in php mentre sin e cos rimangono uguali.
    non l'ho testata ma a occhio dovrebbe uscire una robaccia del genere:

    codice:
    SELECT distance AS (
         (radians(acos(sin(radians(LAT_A))* sin(radians(LAT_B)) + cos(radians(LAT_A)) * cos(radians(LAT_B)) * cos(radians(LONG_A - LONG_B))))) * 69.09) 
    FROM TABELLA

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 © 2025 vBulletin Solutions, Inc. All rights reserved.