2013-05-05 12 views
6

Come posso ottenere la longitudine e la latitudine utilizzando PHP della macchina dell'utente?Ottieni la longitudine e la latitudine della macchina dell'utente in PHP

ho bisogno di che sia così la longitudine se il nord è un valore positivo, e se a sud si tratta di un valore negativo/

E in termini di latitudine, se ad est è un valore positivo e se ovest si tratta di un valore negativo.

Come posso fare questo?

+0

Erm, latitudine nord/sud, sport. – pp19dd

+0

@ pp19dd ah, ho cambiato longitudine e latitudine? –

+0

latitudine e longitudine praticamente arriva in un determinato formato, se vuoi qualcos'altro, dovrai capirlo da solo. – adeneo

risposta

15

L'unico modo per Geolocalizza sul serverside sarebbe quella di utilizzare una tabella di ricerca per l'indirizzo IP. Ci sono servizi che forniscono questo per voi, in modo che si possa fare questo:

$ip = !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']; 
$url = "http://freegeoip.net/json/$ip"; 
$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
$data = curl_exec($ch); 
curl_close($ch); 

if ($data) { 
    $location = json_decode($data); 

    $lat = $location->latitude; 
    $lon = $location->longitude; 

    $sun_info = date_sun_info(time(), $lat, $lon); 
    print_r($sun_info); 
} 

Non sarà sempre molto preciso però. In javascript avresti accesso all'API di geolocalizzazione HTML5 o Google Maps, ma il geocoding inverso con Google richiede l'utilizzo di una mappa, come da TOS.

+0

Non voglio cercare la posizione sul lato server, voglio usare PHP per cercare la posizione sul lato del client. –

+3

Non c'è PHP sul lato client, è un linguaggio serveride? – adeneo

+0

È vero, quindi non posso usare PHP per cercare il tramonto e l'alba dal lato del cliente. Devo usare un linguaggio lato client, giusto? –

0

Poiché la posizione esatta richiede il consenso dell'utente, non può essere eseguita con PHP. Prova a utilizzare JS per ottenere la posizione dell'utente e utilizza AJAX per inviarlo al server.

Se si desidera utilizzare una posizione approssimativa, è possibile eseguire la mappatura in base all'indirizzo IP. Una ricerca web mostrerà alcune opzioni, come ad esempio this one.

+0

HTML5 geoloaction non è altro che il browser che invia una richiesta a un servizio basato su IP e poche altre variabili, come i cellulari vicini, il GPS su dispositivi mobili, le chiavi di rete su reti wireless vicine, ecc, quindi non è proprio esatto, e alcuni dei servizi, in particolare Microsoft è ancora peggio che utilizzare un servizio gratuito per la ricerca dell'IP. – adeneo

Problemi correlati