Visualizzazione dei risultati da 1 a 1 su 1
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776

    Calcolo distanza tra 2 indirizzi Google Maps - utilizzo di una classe

    @ maximus123
    Dal momento che non potevo aggiungere msg al tuo ho aperto una nuova discussione.

    Ho avuto il tuo stesso problema e avevo realizzato questa classe in PHP.
    Devi passare le coordinate dei due punti di google maps come stringhe, incluse le parentesi e ti restituisce la distanza tra i due punti, in linea d'aria.
    Distancia::get("(coordinata1_lat,coordinata1_lon)" ,"(coordinata2_lat,coordinata2_lon)");

    Codice PHP:
    class Distancia {

        const 
    6371;
        const 
    PIGRECO 3.1415927;

        static function 
    get($coordenadas1$coordenadas2) {

            
    $latA self::getLatLon($coordenadas1'lat');
            
    $lonA self::getLatLon($coordenadas1'lon');
            
    $latB self::getLatLon($coordenadas2'lat');
            
    $lonB self::getLatLon($coordenadas2'lon');

            
    $lat_alfa self::PIGRECO $latA 180;
            
    $lat_beta self::PIGRECO $latB 180;
            
    $lon_alfa self::PIGRECO $lonA 180;
            
    $lon_beta self::PIGRECO $lonB 180;

            
    $fi abs($lon_alfa $lon_beta);

            
    $p acos(sin($lat_beta) * sin($lat_alfa) +
                    
    cos($lat_beta) * cos($lat_alfa) * cos($fi));

            
    $d $p self::R;
            return(
    $d);
        }

        private static function 
    getLatLon($coordenadas$tipo) {
            
    $resultado "";
            if (
    $tipo == 'lat') {
                
    preg_match("/\((.*?),/"$coordenadas$resultado);                          
                return 
    substr($resultado[0], 1, -1);
                
            }
            if (
    $tipo == 'lon') {
                
    preg_match("/,(.*?)\)/"$coordenadas$resultado);
                return 
    substr($resultado[0], 1, -1);
            }
            return 
    false;
        }


    Ultima modifica di robynosse; 20-12-2015 a 14:15

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.