2013-05-05 18 views
6

Jak mogę uzyskać długość i szerokość geograficzną za pomocą PHP komputera użytkownika?Uzyskaj długość i szerokość geograficzną jako maszynę użytkownika w PHP

muszę go mieć więc geograficznej czy północ jest wartością dodatnią, a jeśli południe jest to wartość ujemna/

I pod względem szerokości, jeśli wschód jest to wartość dodatnia, a jeśli na zachód to ujemna wartość.

Jak mogę to zrobić?

+0

Erm, szerokość geograficzna to północ/południe, sport. – pp19dd

+0

@ pp19dd ah, czy mam włączoną długość i szerokość geograficzną? –

+0

szerokość i długość geograficzna w znacznym stopniu przychodzi w danym formacie, jeśli chcesz czegoś innego, musisz to sobie wyobrazić. – adeneo

Odpowiedz

15

Jedynym sposobem na geolokalizacji na serverside byłoby użyć tabela odnośników dla adresu IP. Istnieją usługi, które zapewniają to za Ciebie, więc możesz to zrobić:

$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); 
} 

Nie zawsze będzie to jednak bardzo dokładne. W javascriptu będziesz miał dostęp do API geolokalizacji HTML5 lub Google Maps, ale odwrotne geokodowanie z Google wymaga użycia mapy zgodnie z TOS.

+0

Nie chcę patrzeć na lokalizację po stronie serwera, chcę użyć PHP, aby wyszukać lokalizację po stronie klienta. –

+3

Nie ma PHP na kliencie, jest to język serwerowy? – adeneo

+0

To prawda, więc nie mogę używać PHP do wyszukiwania wschodu i zachodu słońca po stronie klienta. Muszę używać języka po stronie klienta, prawda? –

0

Ponieważ dokładna lokalizacja wymaga zgody użytkownika, nie można tego zrobić za pomocą PHP. Spróbuj użyć JS, aby uzyskać lokalizację użytkownika i użyj AJAX, aby wysłać go na serwer.

Jeśli chcesz użyć przybliżonej lokalizacji, możesz mapować według adresu IP. Wyszukiwanie w sieci spowoduje wyświetlenie kilku opcji, takich jak this one.

+0

Geoloaction to nic innego jak przeglądarka wysyłająca żądanie do usługi opartej na IP i kilku innych zmiennych, takich jak pobliskie komórki, GPS na urządzeniach mobilnych, klucze sieciowe w bliskich sieciach bezprzewodowych itp., Więc nie jest to zbyt dokładne, a niektóre usług, w szczególności Microsoft, jest jeszcze gorszy niż korzystanie z bezpłatnej usługi wyszukiwania adresu IP. – adeneo

Powiązane problemy