Геолокация HTML5 против Google Maps Geolocation api

Я немного смущен относительно того, почему я решил использовать ограниченный доступ Google Maps Geolocation API через бесплатный и (по-видимому) неограниченная navigator.geolocation функция HTML5?

Насколько я могу судить, единственным преимуществом версии Google является повышенная поддержка браузеров, таких как IE8. Я пропустил что-то важное здесь? Или есть небольшая разница?


В ходе дальнейшего расследования мы заметили, что Chrome фактически обращается к Google api, чтобы получить информацию (подкрепленную этим ответом от 6 лет назад). Так что это задает вопрос, все еще ли он ограничен? Если да, то сколько в какой период?

Ответы

Ответ 1

API геолокации Google Maps является конечной точкой HTTP, которая принимает предоставленные пользователем данные JSON о ближайших Wi-Fi-сетях и сотовых башнях и дает оценку местоположения пользователя.

Объект HTML5 navigator.geolocation предоставляет API-интерфейс браузера, который выполняет некоторый набор операций, а затем производит оценку местоположения пользователя. Из Спецификация геолокации W3C:

Сам API не зависит от исходных источников информации о местоположении. Общие источники информации о местоположении включают в себя Глобальную систему определения местоположения (GPS) и местоположение, исходящее из сетевых сигналов, таких как IP-адрес, RFID, WiFi и MAC-адреса Bluetooth, а также идентификаторы сотовой сети GSM/CDMA, а также пользовательский ввод.

Функция navigator.geolocation может использовать любую информацию, доступную для приложения браузера, включая любую информацию с устройства GPS устройства, если она есть. Разумеется, он может также использовать любые сторонние веб-API (в том числе, возможно, API геолокации Google Maps), которые могут быть достигнуты. Нет определенного требуемого подхода или вкладов, которые должны или должны использоваться; браузер может сделать все, что в его силах, чтобы сделать оценку местоположения. Это может сделать лучшую или худшую работу, чем подход Google, в зависимости от их конкретных реализаций, или браузер может (как вы полагаете) напрямую использовать Google API.

Короче говоря, Google API - это способ спросить: "Основываясь на этой ячейке и информации Wifi, расскажите мне, где я". API HTML5 - это способ сообщить браузеру: "У вас есть доступ к Интернету и всем физическим входам, доступным для моего устройства, и узнайте, где я, как-то".

Я не удивлен, узнав, что, если GPS не присутствует, браузер может передать свою работу по геолокации сторонним сервисам, таким как Google. Поставщики браузеров, как правило, заинтересованы в создании браузеров, а не создании надежной службы для решения трудной проблемы преобразования данных ячейки /Wi -Fi в информацию о местоположении. Кроме того, для этого требуется огромное количество геопространственных данных о местонахождениях различных башен и SSID Wi-Fi. Это повредит браузеру, чтобы хранить всю информацию на локальном компьютере, и любая попытка для поставщика разместить удаленную информацию будет функционально настраивать конкурента на уже известный сервис Google.

Ответ 2

API HTML5 будет запускать модальное всплывающее окно, чтобы попросить пользователя дать разрешение и API геолокации Google Maps, чтобы обойти это. Сами методы, чтобы собирать местоположение, очень похожи, хотя область видимости HTML5 больше зависит от того, как браузер ее реализует.

Пример HTML5 - https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation

Пример геолокации Google Maps - http://webkay.robinlinus.com/

Также ссылка: https://developers.google.com/maps/articles/geolocation

  • API Карт может предоставить вам вариант для более старого браузера, который не поддерживает HTML5 или, конечно, не-браузерный клиент (родной и т.д.)
  • API Карт будет стоить вам $после бесплатной ежедневной квоты
  • Метод HTML5 должен быть приоритетным по сравнению с другими в большинстве случаев