Страницы

Поиск по вопросам

пятница, 9 ноября 2018 г.

Как узнать регион пользователя с помощью Geolocation HTML5

Как узнать регион пользователя который зашёл на сайт?


Ответ

Что-то подобное можно использовать (определение местоположения по координатам):
HTML

Страна:

Край(обл.):

Город:

Адрес:

Широта:

Долгота:


JS
function displayError(error) { var errors = { 1: 'Нет прав доступа', 2: 'Местоположение невозможно определить', 3: 'Таймаут соединения' }; alert("Ошибка: " + errors[error.code]); }
function displayPosition(position) { var GEOCODING = 'https://maps.googleapis.com/maps/api/geocode/json?latlng=' + position.coords.latitude + '%2C' + position.coords.longitude + '&language=ru';
$.getJSON(GEOCODING).done(function(location) {
$('#address').html(location.results[0].formatted_address); $('#latitude').html(position.coords.latitude); $('#longitude').html(position.coords.longitude);
// в location.results[0] содержится больше всего информации об адресе for (var i = 0; i < location.results[0].address_components.length; i++) { switch(location.results[0].address_components[i].types[0]) { case 'locality': $('#city').html(location.results[0].address_components[i].long_name); break; case 'administrative_area_level_1': $('#state').html(location.results[0].address_components[i].long_name); break; case 'country': $('#country').html(location.results[0].address_components[i].long_name); break; } } }) }
if (navigator.geolocation) { var timeoutVal = 10 * 1000 * 1000; navigator.geolocation.getCurrentPosition( displayPosition, displayError, { enableHighAccuracy: true, timeout: timeoutVal, maximumAge: 0 } ); } else { alert("Geolocation не поддерживается данным браузером"); }
Рабочий пример: https://jsfiddle.net/tty37u7m/6/ (сюда в код не удалось импортировать этот пример, geolocation не реагирует)

Комментариев нет:

Отправить комментарий