Visualizzazione dei risultati da 1 a 9 su 9

Visualizzazione discussione

  1. #9
    allora... l'utente immette l'indirizzo in una form che manda tutto a questa funzione

    Codice PHP:
    public static function  lat_long($indirizzo){        
             
    $cordinate = array();        
             if (!
    is_string($indirizzo))die("gli indirizzi devono essere mandati come stringa");             
             
    $encoding_address urlencode($indirizzo);          
             
    $GoogleAPI 'http://maps.google.com/maps/api/geocode/xml?address='.$encoding_address.'&sensor=false';          
             
    $XMLresult file_get_contents($GoogleAPI);            
             
    $XMLobject = new SimpleXMLElement($XMLresult);         
             if(
    $XMLobject->status=='OK') {
                    
    $cordinate['lat'] = $XMLobject->result->geometry->location->lat;          
                    
    $cordinate['long'] = $XMLobject->result->geometry->location->lng;        
             }        
             return 
    $cordinate;    

    poi tutto passa attraverso questa query:
    Codice PHP:
    "SELECT TOP 3 *, (6378.8 * ACOS(SIN(".$lat." / 57.2958) * SIN(lat / 57.2958) + COS(".$lat." / 57.2958) * COS(lat / 57.2958)  * COS(lon / 57.2958 - ".$long." / 57.2958))) AS distanza             FROM luoghi
            WHERE lat IS NOT NULL AND lon IS NOT NULL AND "
    .$lat.">=lat-0.9 AND ".$lat."<=lat+0.9 AND ".$long.">=lon-0.9 AND ".$long."<=lon+0.9
            AND (6378.8 * ACOS(SIN("
    .$lat." / 57.2958) * SIN(lat / 57.2958) + COS(".$lat." / 57.2958) * COS(lat / 57.2958)  * COS(lon / 57.2958 - ".$long." / 57.2958)))< 100 ORDER BY distanza ASC " 
    in pratica ho ridotto tutti i record ad un "raggio" (in realtà è un quadrato) di 100km dal luogo di partenza (ricordo che per passare dal raggio in km a radianti bisogna moltiplicare per 0,009) in modo da poter snellire le operazioni da db
    Ultima modifica di simovik90; 15-07-2015 a 10:24 Motivo: indentazione del codice

Tag per questa discussione

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.