Получить долготу и широту в качестве пользовательской машины в PHP

Как я могу получить долготу и широту с помощью PHP на компьютере пользователя?

Мне нужно, чтобы это было так долго, если север – положительное значение, а если на юге это отрицательное значение /

И в терминах широты, если на востоке это положительное значение, а если запад – отрицательное значение.

Как я могу это сделать?

Solutions Collecting From Web of "Получить долготу и широту в качестве пользовательской машины в PHP"

Единственный способ геолокации на сервере – это использовать таблицу поиска для IP-адреса. Есть службы, которые предоставляют это для вас, чтобы вы могли сделать это:

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

Однако это не всегда будет очень точно. В javascript у вас будет доступ к API-интерфейсу HTML5 Geolocation или Google Maps, но обратное геокодирование с Google требует использования карты в соответствии с TOS.

См. Геокодер API Карт Google: http://lab.abhinayrathore.com/ipmapper/

Это ответит на все ваши вопросы из АЗ. Если у вас возникли проблемы с его использованием, проверьте, где задан этот вопрос и ответили: найдите Локатор и долготу данного IP-адреса, используя IPMapper

Это будет сделано с использованием Javascript, а не PHP

Поскольку точное местоположение требует согласия пользователя, это не может быть сделано с PHP. Попробуйте использовать JS, чтобы получить местоположение пользователя и использовать AJAX для отправки его на сервер.

Если вы хотите использовать приблизительное местоположение, вы можете сопоставить его по IP-адресу. В веб-поиске вы найдете несколько вариантов для этого, например, этот .