API геолокации W3C
Впервые опубликовано | 22 декабря 2008 г [1] [2] |
---|---|
Последняя версия | Рекомендация W3C 1 сентября 2022 г [3] |
Организация | |
комитет | Рабочая группа по геолокации [3] |
Редакторы | Андрей Попеску [3] |
Домен | Информация о географическом местоположении |
Веб-сайт | www |
API геолокации W3C — это попытка Консорциума Всемирной паутины (W3C) стандартизировать интерфейс для получения информации о географическом местоположении для клиентского устройства. [3] Он определяет набор объектов, соответствующих стандарту ECMAScript , которые при выполнении в клиентском приложении определяют местоположение клиентского устройства посредством консультации с серверами информации о местоположении , которые прозрачны для интерфейса прикладного программирования (API). Наиболее распространенными источниками информации о местоположении являются IP-адрес , Wi-Fi и Bluetooth MAC-адрес , радиочастотная идентификация (RFID), местоположение соединения Wi-Fi или система глобального позиционирования устройства (GPS) и GSM / CDMA идентификаторы сот . Местоположение возвращается с заданной точностью в зависимости от наилучшего доступного источника информации о местоположении.
Результат W3C Geolocation API обычно дает 4 свойства местоположения, включая широту и долготу (координаты), высоту (высоту) и точность [собранной позиции], которые зависят от источников местоположения. [ нужна ссылка ]
Развертывание в веб-браузерах
[ редактировать ]Веб-страницы могут напрямую использовать API геолокации, если веб-браузер его реализует. Исторически сложилось так, что некоторые браузеры могли получить поддержку через Google Gears плагин , но его поддержка была прекращена в 2010 году, а серверный API, от которого он зависел, перестал отвечать на запросы в 2012 году. [4] [5]
API геолокации идеально подходит для веб-приложений для мобильных устройств, таких как смартфоны . На настольных компьютерах API геолокации W3C работает в Firefox начиная с версии 3.5, Google Chrome , [6] Опера 10.6, [7] Интернет Эксплорер 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-адрес скрыт за трансляцией сетевых адресов интернет-провайдера , точность достигается только на уровне города, региона или даже страны.
Выполнение
[ редактировать ]Хотя реализация не указана, API геолокации W3C построен на существующих технологиях и находится под сильным влиянием API геолокации Google Gears. Пример: реализация геолокации в Firefox. [12] использует поставщика сетевых местоположений Google. [5] Google Gears Geolocation работает, отправляя набор параметров, которые могут подсказать, где находится физическое местоположение пользователя, на сервер поставщика сетевых местоположений, который по умолчанию предоставляется Google (code.l.google.com). [13] Некоторые из параметров представляют собой списки обнаруженных вышек мобильной связи и сетей Wi-Fi, все с измеренной мощностью сигнала. Эти параметры инкапсулируются в сообщение нотации объектов JavaScript ( JSON ) и отправляются поставщику сетевых расположений через HTTP POST. На основе этих параметров поставщик сетевого местоположения может рассчитать местоположение. Обычно эта информация о местоположении используется для обеспечения контроля доступа, локализации и настройки контента, анализа трафика, контекстной рекламы и предотвращения кражи личных данных. [14]
Пример кода
[ редактировать ]Простой код JavaScript , который проверяет, реализован ли в браузере API геолокации, а затем использует его для получения текущего положения устройства. этот код создает функцию, которую можно вызвать в HTML, используя <body onload="geoFindMe()">
:
const geoFindMe = () => {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(success, error, geoOptions);
} else {
console.log("Geolocation services are not supported by your web browser.");
}
}
const success = (position) => {
const latitude = position.coords.latitude;
const longitude = position.coords.longitude;
const altitude = position.coords.altitude;
const accuracy = position.coords.accuracy;
console.log(`lat: ${latitude} long: ${longitude}`);
}
const error = (error) => {
console.log(`Unable to retrieve your location due to ${error.code}: ${error.message}`);
}
const geoOptions = {
enableHighAccuracy: true,
maximumAge: 30000,
timeout: 27000
};
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «История публикации спецификации API геолокации, 2-е издание — W3C» . нд . Проверено 21 апреля 2021 г.
- ^ Попеску, Андрей (22 декабря 2008 г.). «Спецификация API геолокации» . W3C . Рабочая группа по геолокации . Проверено 21 апреля 2021 г.
- ^ Jump up to: а б с д Касерес, Маркос; Грант, Рейли (1 сентября 2022 г.). «Спецификация API геолокации» . W3C . Рабочая группа по геолокации . Проверено 8 февраля 2024 г.
- ^ «API геолокации: API Gears: Код Google» . Гугл-код . 9 июля 2009 года. Архивировано из оригинала 14 февраля 2012 года . Проверено 21 апреля 2021 г.
- ^ Jump up to: а б «GeolocationAPI — gears — обеспечивает геолокацию устройства, на котором работает веб-браузер с поддержкой Gears. — Улучшение вашего веб-браузера — хостинг проектов Google» . Гугл-код . nd Архивировано из оригинала 22 декабря 2015 года . Проверено 21 апреля 2021 г.
- ^ «Новая стабильная версия Chrome: добро пожаловать, Mac и Linux!» . Блог Google Chrome . 25 мая 2010 года . Проверено 21 апреля 2021 г.
- ^ Кляйнхаут, Хуиб (1 июля 2021 г.). «Опера 10.60 выходит в финал» . Моя Опера . Программное обеспечение Опера . Архивировано из оригинала 9 ноября 2011 года . Проверено 21 апреля 2021 г.
- ^ ieblog (17 февраля 2011 г.). «API геолокации W3C в IE9 — IEBlog — Главная страница сайта — Блоги MSDN» . IEBlog . Архивировано из оригинала 19 февраля 2011 года . Проверено 21 апреля 2021 г.
- ^ Opera.com (25 ноября 2010 г.). «Opera ускоряет просмотр страниц на Symbian» . Архивировано из оригинала 4 ноября 2011 года . Проверено 21 апреля 2021 г.
- ^ «Безопасные контексты» . W3.org . Проверено 13 октября 2022 г.
- ^ «Намерение удалить: использование геолокации небезопасным источником» . Группы.Google.com . Проверено 13 октября 2022 г.
- ^ «Сообщает ли Firefox мое местоположение веб-сайтам? | Поддержка Mozilla» . Мозилла Фаерфокс . Мозилла. нд . Проверено 21 апреля 2021 г.
- ^ «WebScanNotes.com: API геолокации W3C» . ВебСканНотес . nd Архивировано из оригинала 12 ноября 2012 года . Проверено 21 апреля 2021 г.
- ^ Кинг, Кевин Ф. (8 июня 2010 г.). «Личная юрисдикция, интернет-торговля и конфиденциальность: широко распространенные правовые последствия современных технологий геолокации» (опубликовано 9 июня 2010 г.). ССНН 1622411 . Проверено 21 апреля 2021 г.