API геолокации W3C

Javascript API для геолокации устройств

API геолокации
Впервые опубликовано22 декабря 2008 г. ; 16 лет назад [1] [2] ( 2008-12-22 )
Последняя версияРекомендация W3C
1 сентября 2022 г .; 2 года назад [3] ( 2022-09-01 )
Организация
КомитетРабочая группа по геолокации [3]
РедакторыАндрей Попеску [3]
ДоменИнформация о географическом местоположении
Веб-сайтwww.w3.org/TR/geolocation-API/

W3C Geolocation API — это попытка Консорциума Всемирной паутины (W3C) стандартизировать интерфейс для получения информации о географическом местоположении для клиентского устройства. [3] Он определяет набор объектов, соответствующих стандарту ECMAScript , которые при выполнении в клиентском приложении предоставляют местоположение клиентского устройства посредством консультирования с серверами информации о местоположении , которые прозрачны для интерфейса прикладного программирования (API). Наиболее распространенными источниками информации о местоположении являются IP-адрес , MAC-адрес Wi-Fi и Bluetooth , радиочастотная идентификация (RFID), местоположение соединения Wi-Fi или идентификаторы глобальной системы позиционирования (GPS) и сот GSM / CDMA . Местоположение возвращается с заданной точностью в зависимости от наилучшего доступного источника информации о местоположении.

Результат API геолокации W3C обычно дает 4 свойства местоположения, включая широту и долготу (координаты), высоту (высоту) и точность [полученного местоположения], которые все зависят от источников местоположения. [ необходима ссылка ]

Развертывание в веб-браузерах

Веб-страницы могут использовать API геолокации напрямую, если веб-браузер его реализует. Исторически некоторые браузеры могли получить поддержку через плагин Google Gears , но он был прекращен в 2010 году, а API на стороне сервера, от которого он зависел, перестал отвечать в 2012 году. [4] [5]

API геолокации идеально подходит для веб-приложений для мобильных устройств, таких как смартфоны . На настольных компьютерах API геолокации W3C работает в Firefox начиная с версии 3.5, Google Chrome , [6] Opera 10.6, [7] Internet Explorer 9.0, [8] и Safari 5. На мобильных устройствах он работает на Android (прошивка 2.0+), iOS , Windows Phone и Maemo . API геолокации W3C также поддерживается Opera Mobile 10.1 — доступна для устройств Android и Symbian (S60 поколения 3 и 5) с 24 ноября 2010 года. [9] Браузеры изначально разрешали доступ к API в незащищенных контекстах, но в контексте безопасных контекстов [10] браузеры, например Chrome, [11] теперь обычно требуют безопасного соединения.

Google Gears обеспечивал поддержку геолокации для старых и несовместимых браузеров, включая Internet Explorer 7.0+ как плагин Gears и Google Chrome, который изначально реализовал Gears. Он также поддерживал геолокацию на мобильных устройствах как плагин для браузера Android (до версии 2.0) и Opera Mobile для Windows Mobile . Однако API геолокации Google Gears несовместим с API геолокации W3C и больше не поддерживается.

Источники местоположения

API геолокации не предоставляет информацию о местоположении. Информация о местоположении получается устройством (например, смартфоном, ПК или модемом), которое затем обслуживается API для загрузки в браузер. Обычно геолокация пытается определить местоположение устройства, используя один из этих нескольких методов.

GPS (глобальная система позиционирования)
Это происходит с любым устройством, имеющим возможности GPS. Смартфон с возможностями GPS и установленным режимом высокой точности, скорее всего, получит данные о местоположении из этого. GPS вычисляет информацию о местоположении из спутникового сигнала. Он имеет самую высокую точность; в большинстве смартфонов Android точность может достигать 10 метров.
Местоположение мобильной сети
Отслеживание мобильного телефона применяется, если используется сотовый телефон или беспроводной модем без встроенного чипа GPS.
Система позиционирования Wi-Fi
Если Wi-Fi используется в помещении, то наиболее вероятным источником является система позиционирования Wi-Fi . Некоторые точки Wi-Fi имеют возможности определения местоположения.
Расположение IP-адреса
Местоположение определяется на основе ближайшего публичного IP-адреса на устройстве (которым может быть компьютер, маршрутизатор, к которому он подключен, или поставщик услуг Интернета (ISP), которого использует маршрутизатор). Местоположение зависит от доступной информации об IP, но во многих случаях, когда IP скрыт за трансляцией сетевого адреса ISP , точность составляет только уровень города, региона или даже страны.

Выполнение

Хотя реализация не указана, API геолокации W3C построен на существующих технологиях и находится под сильным влиянием API геолокации Google Gears. Пример: реализация геолокации Firefox [12] использует поставщика сетевого местоположения Google. [5] Геолокация Google Gears работает, отправляя набор параметров, которые могут дать подсказку о том, где находится физическое местоположение пользователя, на сервер поставщика сетевого местоположения, который по умолчанию предоставляется Google (code.l.google.com). [13] Некоторые из параметров представляют собой списки обнаруженных вышек мобильной связи и сетей Wi-Fi, все с обнаруженной мощностью сигнала. Эти параметры инкапсулируются в сообщение JavaScript Object Notation ( JSON ) и отправляются поставщику сетевого местоположения через HTTP POST. На основе этих параметров поставщик сетевого местоположения может вычислить местоположение. Обычные способы использования этой информации о местоположении включают обеспечение контроля доступа, локализацию и настройку контента, анализ трафика, контекстную рекламу и предотвращение кражи личных данных. [14]

Пример кода

Простой код JavaScript , который проверяет, реализован ли в браузере API геолокации, а затем использует его для получения текущего местоположения устройства. Этот код создает функцию, которую можно вызвать в HTML с помощью <body onload="geoFindMe()">:

const geoFindMe = () = > { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition ( success , error , geoOptions ) ; } else { console.log ( " Службы геолокации не поддерживаются вашим веб-браузером. " ) ; } }                const success = ( position ) => { const latitude = position . coords . latitude ; const longitude = position . coords . longitude ; const altitude = position . coords . altitude ; const precision = position . coords . accuracy ; console . log ( `lat: ${ latitude } long: ${ longitude } ` ); }                      const error = ( error ) => { console . log ( `Невозможно определить ваше местоположение из-за ${ error . code } : ${ error . message } ` ); }      const geoOptions = { enableHighAccuracy : true , maximumAge : 30000 , timeout : 27000 };         

Смотрите также

Ссылки

  1. ^ "История публикации спецификации API геолокации, 2-е издание - W3C". nd . Получено 21 апреля 2021 г.
  2. ^ Попеску, Андрей (22 декабря 2008 г.). «Спецификация API геолокации». W3C . Рабочая группа геолокации . Получено 21 апреля 2021 г.
  3. ^ abcd Касерес, Маркос; Грант, Рейли (1 сентября 2022 г.). «Спецификация API геолокации». W3C . Рабочая группа геолокации . Получено 8 февраля 2024 г.
  4. ^ "Geolocation API: Gears API: Google Code". Google Code . 9 июля 2009 г. Архивировано из оригинала 14 февраля 2012 г. Получено 21 апреля 2021 г.
  5. ^ ab "GeolocationAPI - gears - Предоставляет геолокацию устройства, на котором запущен веб-браузер с поддержкой Gears. - Улучшение вашего веб-браузера - Хостинг проектов Google". Google Code . nd Архивировано из оригинала 22 декабря 2015 г. Получено 21 апреля 2021 г.
  6. ^ «Новый стабильный релиз Chrome: добро пожаловать, Mac и Linux!». Блог Google Chrome . 25 мая 2010 г. Получено 21 апреля 2021 г.
  7. ^ Kleinhout, Huib (1 июля 2021 г.). «Opera 10.60 выходит в финал». Моя Opera . Программное обеспечение Opera . Архивировано из оригинала 9 ноября 2011 г. . Получено 21 апреля 2021 г. .
  8. ^ ieblog (17 февраля 2011 г.). "W3C Geolocation API в IE9 - IEBlog - Site Home - MSDN Blogs". IEBlog . Архивировано из оригинала 19 февраля 2011 г. . Получено 21 апреля 2021 г. .
  9. ^ Opera.com (25 ноября 2010 г.). «Opera ускоряет просмотр страниц на Symbian». Архивировано из оригинала 4 ноября 2011 г. Получено 21 апреля 2021 г.
  10. ^ "Безопасные контексты". W3.org . Получено 13 октября 2022 г. .
  11. ^ «Намерение удалить: Небезопасное использование геолокации в источнике». Groups.Google.com . Получено 13 октября 2022 г. .
  12. ^ "Поделится ли Firefox моим местоположением с веб-сайтами? | Поддержка Mozilla". Mozilla Firefox . Mozilla. nd . Получено 21 апреля 2021 г. .
  13. ^ "WebScanNotes.com: W3C Geolocation API". WebScanNotes . nd Архивировано из оригинала 12 ноября 2012 г. Получено 21 апреля 2021 г.
  14. ^ Кинг, Кевин Ф. (8 июня 2010 г.). «Персональная юрисдикция, интернет-коммерция и конфиденциальность: всепроникающие правовые последствия современных технологий геолокации» (опубликовано 9 июня 2010 г.). SSRN  1622411 . Получено 21 апреля 2021 г. .
  • Спецификация API геолокации W3C
Получено с "https://en.wikipedia.org/w/index.php?title=W3C_Geolocation_API&oldid=1231154602"