С приходом стандарта HTML5 в браузерах появляется все больше интересных возможностей.
Одна из таких возможностей geolocation API.Geolocation API представляет собой интерфейс к
geolocation сервису, который пользователь может самостоятельно указать в настройках браузера.
По умолчанию, используется Google Location Services. Сервис в ответ на запрос возвращает текущее положение пользователя в виде координат (широта и долгота).
Как это работает:
К примеру, Firefox отправляет на сервис информацию о ближайших точках доступа. В случае
если клиент не использует WiFi - браузер использует айпи адрес чтобы определить местоположение.
Мобильные устройства могут использовать информацию о ближайших базовых станциях либо если имеется подключенный GPS приемник
координаты определяются с помощью приемника.
Безопасность:
Информация о текущем местоположении пользователя конфиденциальна. Перед тем как разрешить приложению
доступ к этой информации - браузер спросит разрешения у пользователя. Данное поведение описано в
спецификации (http://www.w3.org/TR/geolocation-API/#privacy_for_uas). Никакие данные кроме айпи адреса
и информации о ближайших точках доступа (WiFi) не пересылаются на сервис(ни куки ни сохраненные пароли).
Совместимость:
На данный момент geolocation поддерживают следующие браузеры:
IE Firefox Safari Chrome Opera iPhone Android
9.0+ 3.5+ 5.0+ 5.0+ 10.6+ 3.0+ 2.0+
Ближе к делу:
Определение позиции пользователя возможно с помощью встроенного объекта navigator.geolocation.
Рассмотрим более подробно на примерах:
getCurrentPosition - попытается определить текущее местоположение
пользователя с помощью сервиса и в случае успеха вызовет callback функцию и
передаст в нее объект Position.
Также возможно остлеживать изменения позиции пользователя:
Все это дает большие преимущества перед отдельными решениями - теперь мы можем использовать единое решение.
Ссылки:
W3C spec:
http://www.w3.org/TR/geolocation-API
Тесты:
http://benwerd.com/lab/geo.php
http://channy.creation.net/project/firefox/geolocation.html
Статьи
http://diveintohtml5.org/geolocation.html
http://hacks.mozilla.org/2009/06/geolocation/
http://www.mozilla.com/ru/firefox/geolocation/
Одна из таких возможностей geolocation API.Geolocation API представляет собой интерфейс к
geolocation сервису, который пользователь может самостоятельно указать в настройках браузера.
По умолчанию, используется Google Location Services. Сервис в ответ на запрос возвращает текущее положение пользователя в виде координат (широта и долгота).
Как это работает:
К примеру, Firefox отправляет на сервис информацию о ближайших точках доступа. В случае
если клиент не использует WiFi - браузер использует айпи адрес чтобы определить местоположение.
Мобильные устройства могут использовать информацию о ближайших базовых станциях либо если имеется подключенный GPS приемник
координаты определяются с помощью приемника.
Безопасность:
Информация о текущем местоположении пользователя конфиденциальна. Перед тем как разрешить приложению
доступ к этой информации - браузер спросит разрешения у пользователя. Данное поведение описано в
спецификации (http://www.w3.org/TR/geolocation-API/#privacy_for_uas). Никакие данные кроме айпи адреса
и информации о ближайших точках доступа (WiFi) не пересылаются на сервис(ни куки ни сохраненные пароли).
Совместимость:
На данный момент geolocation поддерживают следующие браузеры:
IE Firefox Safari Chrome Opera iPhone Android
9.0+ 3.5+ 5.0+ 5.0+ 10.6+ 3.0+ 2.0+
Ближе к делу:
Определение позиции пользователя возможно с помощью встроенного объекта navigator.geolocation.
Рассмотрим более подробно на примерах:
function showMap(position) {
// Show a map centered at
// (position.coords.latitude, position.coords.longitude).
}
// One-shot position request.
navigator.geolocation.getCurrentPosition(showMap);
getCurrentPosition - попытается определить текущее местоположение
пользователя с помощью сервиса и в случае успеха вызовет callback функцию и
передаст в нее объект Position.
Также возможно остлеживать изменения позиции пользователя:
function scrollMap(position) {
// Скроллирует карту так что она бдует центрирована на точку
(position.coords.latitude, position.coords.longitude).
}
//Стартует слежение за изменениями позиции пользователя
var watchId = navigator.geolocation.watchPosition(scrollMap);
function buttonClickHandler() {
//Останавливает слежение по клику на кнопке
navigator.geolocation.clearWatch(watchId);
}
Все это дает большие преимущества перед отдельными решениями - теперь мы можем использовать единое решение.
Ссылки:
W3C spec:
http://www.w3.org/TR/geolocation-API
Тесты:
http://benwerd.com/lab/geo.php
http://channy.creation.net/project/firefox/geolocation.html
Статьи
http://diveintohtml5.org/geolocation.html
http://hacks.mozilla.org/2009/06/geolocation/
http://www.mozilla.com/ru/firefox/geolocation/
Комментариев нет:
Отправить комментарий