HTML5 API Геолокации

API геолокации на самом деле не связано с HTML5, т.к. он создан W3C, а не WHATWG. Тем не менее он ссылается на спецификацию HTML5.
API нам предлагает два метода определения местоположения:
1) getCurrentPosition - разовый метод захвата.
2) watchPosition - следит за изменением местоположения.
Мы рассмотрим пример с getCurrentPosition.
После успешного определения местоположения getCurrentPosition отдает объект coords, который содержит широту и долготу местоположения пользователя, а также точность определения.
<html>
<head>
<meta charset="UTF-8">
<title>API Geolocation MakeCode.Ru</title>
</head>
<body>
<div id="info"></div>
<script>
function getPosition ( position ) {
echo('Широта: ' + position.coords.latitude + '<br>');
echo('Долгота: ' + position.coords.longitude + '<br>');
echo('Точность: ' + position.coords.accuracy + ' м.');
}
function errorPosition () {
echo('Не удалось получить текущее местоположение!');
}
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition( getPosition, errorPosition );
} else {
echo('Данный функционал не поддерживается!');
}
function echo ( content ) {
document.getElementById('info').innerHTML += content;
}
</script>
</body>
</html>
Можно сразу посмотреть рабочий пример.
На iPod это выглядит так:

Точность измеряется в метрах. Кстати не удивляйтесь, что любой браузер будет выдавать запрос на разрешение передачи данных о местоположении. В спецификации явно указано, что браузеры не должны отправлять гео-данные без разрешения пользователя.
Координаты вещь не наглядная, но их можно передать, например объекту Google карт. Если это вызовет большие трудности я напишу как это сделать. Кроме того мы еще не рассмотрели вариант с watchPosition.
Где можно использовать API геолокации? Например при отправке пользователем поста на вашем сайте, сделайте чекбокс "Указать мое местоположение" и пусть пользователь сам решает когда ему это нужно. Можно определять и советовать ближайшие заведения для текущего пользователя, например если он находится в каталоге заведений на вашем сайте.
Также эти данные можно использовать в игре энкаунтер и зарница. Тут, как говорится, голь на выдумку хитра.
