ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ

HTML5 Учебник

HTML СТАРТ HTML Введение HTML Редакторы HTML Основные примеры HTML Элементы HTML Атрибуты HTML Заголовки HTML Параграфы HTML Стили HTML Форматирование HTML Цитаты HTML Комментарии HTML Цвета HTML CSS HTML Ссылки HTML Изображения HTML Таблицы HTML Списки HTML Блоки HTML Классы HTML Идентификаторы HTML Фреймы HTML JavaScript HTML Пути к файлам HTML Голова веб-страницы HTML Макеты HTML Адаптивность HTML Компьютерный код HTML Символьные объекты HTML Символы HTML Кодировка HTML URL кодирование HTML XHTML

HTML Формы

HTML Формы HTML Элементы формы HTML Типы ввода HTML Атрибуты ввода

HTML5

HTML5 Введение HTML5 Поддержка HTML5 Новые элементы HTML5 Семантические элементы HTML5 Переход с HTML4 HTML5 Гид по стилю

HTML Графика

HTML Canvas HTML SVG

HTML Медиа

HTML Медиа HTML Видео HTML Аудио HTML Плагины HTML YouTube

HTML API

HTML Геолокация HTML Drag/Drop HTML Web хранилище HTML Web работники HTML SSE

HTML Примеры

HTML Примеры HTML Викторина HTML Упражнения HTML Сертификат HTML Резюме HTML Доступность

HTML Справочники

HTML Список тегов HTML Атрибуты HTML Глобальные атрибуты HTML События HTML Цвета HTML Canvas HTML Аудио/Видео HTML Действующие Doctype HTML Наборы символов HTML URL кодировка HTML Кодировка языка HTTP Сообщения HTTP Методы PX в EM Конвертер Горячие клавиши

HTML5. Уроки для начинающих

HTML5 Геолокация


API геолокации HTML используется для места нахождения пользователя.


Найдите позицию пользователя

API геолокации HTML используется для получения географического положения пользователя.

Поскольку это может нарушить конфиденциальность, позиция недоступна до тех пор, пока пользователь не согласиться с этим.

Примечание: Геолокация является наиболее точной для устройств с GPS, таких как смартфон.


Поддержка браузерами

Цифры в таблице определяют первую версию браузера, которая полностью поддерживает геолокацию.

API
Geolocation 5.0 - 49.0 (http)
50.0 (https)
9.0 3.5 5.0 16.0

Примечание: Начиная с Chrome 50, API Геолокация будет работать только при безопасном соединении, таком как HTTPS. Если ваш сайт размещён на незащищенном источнике (например, HTTP), запросы на получение местоположения пользователей больше не будут функционировать.


Использование HTML Геолокации

Метод getCurrentPosition() используется для возвращения позиции пользователя.

Приведённый ниже пример возвращает широту и долготу позиции пользователя:

Пример

<script>
var x = document.getElementById("demo");
function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
  } else {
    x.innerHTML = "Геолокация не поддерживается этим браузером.";
  }
}

function showPosition(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude +
  "<br>Longitude: " + position.coords.longitude;
}
</script>
Попробуйте сами »

Объяснение примера:

  • Проверяем, поддерживается ли геолокация;
  • Если поддерживается, запускаем метод getCurrentPosition(). Если нет, то отображаем сообщение пользователю;
  • Если метод getCurrentPosition() успешен, он возвращает объект координат к функции, указанной в параметре (showPosition);
  • Функция showPosition() выводит широту и долготу.

Приведённый выше пример является очень простым базовым скриптом геолокации без обработки ошибок.


Обработка ошибок и отказов

Другой параметр метода getCurrentPosition() используется для обработки ошибок. Он определяет функцию для запуска, если не удалось получить местонахождение пользователя:

Пример

function showError(error) {
  switch(error.code) {
    case error.PERMISSION_DENIED:
      x.innerHTML = "Пользователь отклонил запрос на геолокацию."
      break;
    case error.POSITION_UNAVAILABLE:
      x.innerHTML = "Информация о местоположении недоступна."
      break;
    case error.TIMEOUT:
      x.innerHTML = "Запрос на получение тайм-аута пользователя."
      break;
    case error.UNKNOWN_ERROR:
      x.innerHTML = "Произошла неизвестная ошибка."
      break;
  }
}
Попробуйте сами »

Отображение результата на карте

Чтобы отобразить результат на карте, нужен доступ к сервису карт, например, до Карт Google.

В приведённом ниже примере возвращённая широта и долгота используются для отображения местонахождения на карте Google (с помощью статического изображения):

Пример

function showPosition(position) {
  var latlon = position.coords.latitude + "," + position.coords.longitude;

  var img_url = "https://maps.googleapis.com/maps/api/staticmap?center=
  "+latlon+"&zoom=14&size=400x300&sensor=false&key=YOUR_KEY";

  document.getElementById("mapholder").innerHTML = "<img src='"+img_url+"'>";
}

Информация, которая касается местонахождения

На этой странице показано, как отобразить позицию пользователя на карте.

Геолокация также очень полезна для конкретной информации о местонахождении, например:

  • Актуальная местная информация;
  • Отображение интересных мест возле пользователя;
  • Пошаговая навигация (GPS).

Метод getCurrentPosition() - возвращение данных

Метод getCurrentPosition() возвращает объект в случае успеха. Свойства широты, долготы и точности всегда возвращаются. Другие свойства возвращаются, если доступны:

Свойство Возвращение
coords.latitude Широта как десятичное число (всегда возвращается)
coords.longitude Долгота как десятичное число (всегда возвращается)
coords.accuracy Точность позиции (всегда возвращается)
coords.altitude Высота в метрах выше среднего уровня моря (возвращается, если есть)
coords.altitudeAccuracy Точность позиции высоты (возвращается, если доступна)
coords.heading Направление в градусах по часовой стрелке от Севера (возвращается, если доступно)
coords.speed Скорость в метрах в секунду (возвращается, если доступно)
timestamp Дата / время ответа (возвращается, если доступно)

Объект геолокации - другие интересные методы

Объект геолокации - также другие интересные методы:

  • watchPosition() - Возвращает текущую позицию пользователя и продолжает возвращать обновленную позицию, когда пользователь перемещается (например, GPS в автомобиле).
  • clearWatch() - останавливает метод watchPosition().

Приведенный ниже пример показывает метод watchPosition(). Для тестирования требуется точное устройство GPS (например, смартфон):

Пример

<script>
var x = document.getElementById("demo");
function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.watchPosition(showPosition);
  } else {
    x.innerHTML = "Геолокация не поддерживается этим браузером.";
  }
}
function showPosition(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude +
  "<br>Longitude: " + position.coords.longitude;
}
</script>
Попробуйте сами »