Как я могу получить долготу и широту с помощью 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-адресу. В веб-поиске вы найдете несколько вариантов для этого, например, этот .