У HTML5 есть классная функция, которая обеспечивает геолокацию пользователя на лету без использования каких-либо дополнительных сервисов, которые мы делаем прямо сейчас. Эта функция поддерживается Gelocation API, который является частью HTML5.
Ниже приведен пример кода в JavaScript, как он работает.
<button onclick="getGeoLocation()">Get GeoLocation</button>
<script>
function getGeoLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition,HandleError);
}
else
{
alert("Geolocation is not supported by this browser.");
}
}
function showPosition(position)
{
alert("Latitude: " + position.coords.latitude +
" Longitude: " + position.coords.longitude);
}
</script>
Код работает в этом шаблоне.
- Сначала, когда пользователь нажимает на кнопку, он вызывает getGeoLocation
- В этой функции его первая проверка поддерживается navigator.geolocation или нет.
- Он вызывает встроенный метод JavaScript getCurrentPosition, который возвращает объект Postion.
- Этот объект Position используется showPostion для отображения широты и логики
Ниже приведена функция handleError, которая используется для обработки любой ошибки, которая может возникнуть при доступе к GeoLocation пользователя.
function handleError(error)
{
switch(error.code)
{
case error.PERMISSION_DENIED:
alert("User denied the request for Geolocation.");
break;
case error.POSITION_UNAVAILABLE:
alert("Location information is unavailable.");
break;
case error.TIMEOUT:
alert("The request to get user location timed out.");
break;
case error.UNKNOWN_ERROR:
alert("An unknown error occurred.");
break;
}
}
Код функции объясняется данными значениями.
Обновление GeoLocation при перемещении с помощью watchPosition
Существует одна из функций, которая является частью Gelocation API, которая очень полезна для непрерывного обновления местоположения при перемещении пользователя из одного места в другое.
watchPosition — функция, которая используется для достижения вышеуказанной функции.
Чтобы увидеть , как это работает на самом деле просто заменить
getCurrentPosition функцию с
watchPosition .
Чтобы остановить обновления от
watchPosition, вы можете использовать
clearWatch () API.
Положение объекта
Оба метода возвращают объект Postion в качестве вывода. Ниже приведен список свойств, которые являются частью объекта позиции.
| coords.latitude | Широта как десятичное число |
| coords.longitude | Долгота в виде десятичного числа |
| coords.accuracy | Точность положения |
| coords.altitude | Высота в метрах над средним уровнем моря |
| coords.altitudeAccuracy | Высотная точность положения |
| coords.heading | Направление в градусах по часовой стрелке от севера |
| coords.speed | Скорость в метрах в секунду |
| отметка времени | Дата / время ответа |