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
корисна для випадків, коли точність геолокації є критичною, наприклад, при створенні навігаційних застосунків або застосунків для активностей на природі, де потрібно максимально точне позиціонування.
Порада: | Змінюйте параметр точності динамічно: наприклад, якщо користувач знаходиться в місті, активуйте високу точність, а якщо на відкритій місцевості – можна залишити стандартну. |
Порада: | У деяких браузерах та пристроях |
Порада: | Висока точність може збільшити час отримання координат, тому додайте сповіщення для користувача або індикатор завантаження, якщо очікування більше однієї-двох секунд. |
Синтаксис
position.coords.accuracy
Значення
Return
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
5 |
3.5 |
5 |
16 |
12 |
Переглядач | ||||
---|---|---|---|---|
37 |
18 |
4 |
3 |
Переглядач | ||
---|---|---|
- |
- |
Приклади
Цей приклад дозволяє користувачеві натискати кнопку для отримання точності геолокації, яка виводиться в метрах. За допомогою властивості accuracy
об'єкта coords
, що повертається методом getCurrentPosition()
, можна визначити, з якою точністю були отримані координати місцезнаходження користувача. Це особливо корисно для додатків, що потребують точної геолокації, наприклад, для створення навігаційних чи картографічних сервісів.
Тут 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 }
);
Тут перевіряється, чи є точність достатньою для відображення позиції на карті (наприклад, 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 }
);