JS властивість Geolocation.accuracy


Загальний опис

accuracy у властивостях геолокації визначає, наскільки точні координати місця розташування, отримані через API Geolocation. Це значення залежить від налаштувань та методу отримання позиції. Чим вища точність, тим більше пристрій намагається використовувати точніші джерела даних, наприклад, GPS, Wi-Fi або мобільні мережі. Для контролю точності можна використовувати опцію { enableHighAccuracy: true }, яка активує вищу точність, але може збільшити час очікування та споживання батареї.

Метод navigator.geolocation.getCurrentPosition() приймає три параметри: функцію успіху, функцію обробки помилок і об'єкт параметрів, де задається { enableHighAccuracy: true }. Ця опція сприяє отриманню точнішої геолокації, хоча в деяких випадках різниця між стандартною і високою точністю може бути мінімальною. Параметр точності (accuracy) міститься у об’єкті coords, який повертає метод getCurrentPosition().

Приклад для отримання поточного місця розташування з високою точністю:

navigator.geolocation.getCurrentPosition(
  function (position) {
    console.log("Latitude:", position.coords.latitude);
    console.log("Longitude:", position.coords.longitude);
    console.log("Accuracy:", position.coords.accuracy + " meters");
  },
  function (error) {
    console.error("Error Code:", error.code, "Message:", error.message);
  },
  { enableHighAccuracy: true }
);

Тут параметр accuracy (в метрах) визначає радіус, в межах якого знаходиться пристрій з імовірністю 95%. Наприклад, якщо accuracy дорівнює 10, це означає, що пристрій знаходиться в межах 10 метрів від заданих координат.

Опція enableHighAccuracy корисна для випадків, коли точність геолокації є критичною, наприклад, при створенні навігаційних застосунків або застосунків для активностей на природі, де потрібно максимально точне позиціонування.

автор: Bond

Порада

Змінюйте параметр точності динамічно: наприклад, якщо користувач знаходиться в місті, активуйте високу точність, а якщо на відкритій місцевості – можна залишити стандартну.

автор: Bond
Порада

У деяких браузерах та пристроях enableHighAccuracy працює не дуже стабільно або незначно покращує точність, особливо в приміщеннях; це залежить від якості сигналу GPS та інших факторів.

автор: Bond
Порада

Висока точність може збільшити час отримання координат, тому додайте сповіщення для користувача або індикатор завантаження, якщо очікування більше однієї-двох секунд.

автор: Bond

Синтаксис

position.coords.accuracy

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
5 3.5 5 16 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
37 18 4 3
Підтримка: серверні переглядачі
Переглядач Node.js Deno
- -

Приклади

+ запропонувати свій приклад у пісочниці

Тут watchPosition постійно оновлює координати з високою точністю, доки точність не стане прийнятною (менше або рівно 20 метрів). Це корисно для навігаційних або спортивних програм, де точність важлива для відстеження маршруту.

navigator.geolocation.watchPosition(
  (position) => {
    if (position.coords.accuracy <= 20) { // Приклад порогу точності в метрах
      console.log("Latitude:", position.coords.latitude);
      console.log("Longitude:", position.coords.longitude);
      console.log("Accuracy:", position.coords.accuracy + " meters");
    }
  },
  (error) => console.error("Error:", error),
  { enableHighAccuracy: true }
);
автор: Bond

Цей приклад дозволяє користувачеві натискати кнопку для отримання точності геолокації, яка виводиться в метрах. За допомогою властивості accuracy об'єкта coords, що повертається методом getCurrentPosition(), можна визначити, з якою точністю були отримані координати місцезнаходження користувача. Це особливо корисно для додатків, що потребують точної геолокації, наприклад, для створення навігаційних чи картографічних сервісів.

автор: Bond

Тут перевіряється, чи є точність достатньою для відображення позиції на карті (наприклад, 15 метрів або менше), щоб користувач бачив своє місце розташування лише при досягненні певного рівня точності.

navigator.geolocation.getCurrentPosition(
  (position) => {
    if (position.coords.accuracy <= 15) {
      console.log("Координати точні, відображення на карті");
      displayMarkerOnMap(position.coords.latitude, position.coords.longitude);
    } else {
      console.log("Координати не досить точні");
    }
  },
  (error) => console.error("Error:", error),
  { enableHighAccuracy: true }
);
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід