JavaScript API: где я?
Вот практически и подошла к концу наша сага про новые возможности JavaScript, которые будут реализованы в современных браузерах и которые уже сейчас можно опробовать в наиболее прогрессивных веб-обозревателях. В этой статье рассмотрим функцию определения местоположения браузера. Дальше нам останется разве что познакомиться с реализацией 2D/3D-графики в браузере, но это уже отдельная тема.
Геолокация - одна из интересных функциональных особенностей браузеров поколения HTML 5. Благодаря функции геолокации веб-приложение или веб-сайт может определить местоположение, географические координаты устройства, на котором работает пользователь.
В доказательство удобства такой функциональности обычно приводится пример поиска через Интернет какого-нибудь продукта. Например, человек собирается сделать покупку нужного ему товара и ищет в Интернете отзывы о продукте, который планирует купить. Если сайт или поисковая система сможет получить и обработать информацию о местонахождении пользователя, то ему будут предложены ближайшие торговые точки с лучшими отзывами о качестве и количестве продукта.
Впрочем, злые языки утверждают, что такая функция в браузере - это банальный шпионаж. И своя правда в таком отношении к геолокации тоже есть.
Функция определения географического расположения в меньшей степени полезна для стационарных компьютеров. Сидит человек в одной точке земного шара всю жизнь и пусть себе сидит.
Но для нетбуков и ноутбуков, а также других мобильных устройств геопозиционирование может быть более нужным и полезным делом, и не только для "шпионящих" приложений - у многих пользователей могут быть в жизни моменты, когда нужно узнать, "куда же это меня занесло".
Приняв все эти соображения к сведению, учёные мужи из консорциума W3C, отвечающего за все наши интернеты, решили стандартизировать геолокацию в браузерах. И скоро каждый браузер будет иметь унифицированный интерфейс JavaScript для определения своего географического местоположения. Хотя геолокация уже сейчас поддерживается практически любым браузером. Кажется, даже IE 8 поддерживает эту функциональность.
Получение нужных географических координат предполагает три законных способа. Первый способ - получение геоинформации по IP-адресу, через который компьютер имеет доступ в Интернет. Есть специальные базы, позволяющие получить данные местонахождения через адрес IP.
Это самый неэффективный и неточный способ. Во многих случаях получается адрес не пользователя, а провайдера. Но, по крайней мере, уж населённый пункт, в котором пользователь находится, таким способом определяется довольно точно.
Второй способ - это определение местоположения по ближайшим точкам wi-fi через сервис WPS (Wi-Fi Positioning System). Это более точный метод определения географического местоположения.
Третий способ применяется в современных смартфонах и делается согласно данных ближайших вышек сотовой связи или через данные GPS-приёмника.
Спецификация W3C Geolocation определяет JavaScript API для доступа к информации о местонахождении компьютерного устройства, таких, как смартфон или ноутбук.
Интерфейс JavaScript геопозиционирования для браузеров представляет собой специальный объект geolocation с функцией getCurrentPosition(), через которую определяют долготу и широту компьютерного устройства согласно возможностям данного компьютерного устройства.
// Определяем поддержку геолокации if (navigator.geolocation) { //Получаем широту и долготу navigator.geolocation.getCurrentPosition( function(position) { var lat = position.coords.latitude; var lng = position.coords.longitude; alert('latitude :'+lat+' longitude: '+lng); }); }
Следует обязательно сказать, что, согласно стандарту W3C, геопозиционирование является исключительно добровольной функцией. То есть браузер должен обязательно спрашивать у пользователя в каждом конкретном случае разрешение на передачу сайту или веб-приложению информации о местоположении пользователя.
Михаил АСТАПЧИК
Горячие темы