longitude — довгота місця користувача в Geolocation API
Загальний опис
longitude – це властивість, яка повертає довготу поточного місця розташування користувача в градусах, використовуючи можливості геолокації пристрою. Властивість longitude доступна в об’єкті coords, який міститься у відповіді методів getCurrentPosition або watchPosition з об’єкта navigator.geolocation. Це значення дає змогу веб-додаткам ідентифікувати місце розташування користувача і використовувати його для навігаційних цілей або локалізованих сервісів.
Щоб отримати longitude, розробник викликає navigator.geolocation.getCurrentPosition, який приймає колбек-функцію, де у відповідь на успішне виконання передається об’єкт position. У цьому об’єкті position.coords.longitude повертає поточне значення довготи у форматі десяткового числа. Наприклад, за допомогою console.log(position.coords.longitude) можна вивести в консоль числове значення довготи користувача. Метод getCurrentPosition також має опції для налаштування точності отримання координат, часу очікування та обробки помилок, коли геолокація недоступна або користувач відмовляє в дозволі.
Окрім getCurrentPosition, метод watchPosition дозволяє отримувати оновлення довготи в реальному часі, наприклад, коли користувач пересувається. Метод watchPosition приймає подібні параметри, але повертає watchId, за допомогою якого можна зупинити стеження, викликавши navigator.geolocation.clearWatch(watchId). longitude може використовуватися у додатках для відображення поточного місця на мапі, для обчислення відстаней між точками або налаштування контенту залежно від розташування користувача.
navigator.geolocation.getCurrentPosition((position) => {
const longitude = position.coords.longitude;
console.log(`Поточна довгота: ${longitude}`);
}, (error) => {
console.error("Помилка геолокації:", error);
});
Розробникам слід враховувати, що для використання longitude потрібен дозвіл користувача на доступ до його геолокації. Отримане значення залежить від точності доступних даних геолокації, таких як GPS, мережі Wi-Fi або дані мобільного зв’язку. Довгота використовується разом із широтою (latitude) для точного визначення місця користувача.
- Порада
-
Зберігайте
автор: BondwatchId, щоб при необхідності зупинити постійне оновлення геолокації. Це економить батарею і ресурси пристрою, коли користувач не потребує відстеження в реальному часі. - Порада
-
Для тестування геолокації в умовах реальної роботи з мапою використовуйте інструменти розробника браузера, які дозволяють емуляцію різних місць. Це дозволить вам протестувати довготу без фізичної зміни локації.
автор: Bond - Порада
-
Використовуйте
автор: BondenableHighAccuracyдля підвищення точності довготи. Це особливо корисно, коли ви працюєте з додатками для навігації або точного розташування, але майте на увазі, що це може збільшити час обробки запиту.
Синтаксис
position.coords.longitude;
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 5 | 3.5 | 5 | 16 | 12 | 9 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | ≤3 |
Приклади
+ запропонувати свій приклад у пісочниці
Цей приклад дозволяє користувачеві взаємодіяти з геолокацією через два способи: одноразове отримання довготи при натисканні кнопки або постійне оновлення довготи при активації перемикача "Автооновлення". Це особливо корисно для додатків, що вимагають відображення поточного місця на карті або аналізу переміщень у реальному часі.
HTML
<header>
<h2 class="title">Geolocation -> longitude</h2>
<p class="description">Повертає довготу поточного місця користувача</p>
</header>
<main>
<div class="result">
<button id="get-location-btn">Отримати довготу</button>
<label>
<input type="checkbox" id="auto-update-toggle" />
Автооновлення
</label>
<p id="longitude-display">Довгота: <span id="longitude">--</span></p>
</div>
</main>
CSS
body {
font-size: 16px;
line-height: 1.5;
font-family: monospace;
}
header {
background-color: #f1f1f1;
margin-bottom: 25px;
padding: 15px;
-webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
-moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
header h2.title {
padding-bottom: 15px;
border-bottom: 1px solid #999;
}
header p.description {
font-style: italic;
color: #222;
}
.result {
background-color: #f8f8f8;
padding: 15px;
-webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
-moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
button {
font-size: 14px;
padding: 10px;
margin-top: 10px;
}
label {
display: inline-block;
margin-top: 15px;
font-size: 14px;
}
p {
margin-top: 15px;
font-size: 16px;
}
JS
const longitudeDisplay = document.getElementById("longitude");
const autoUpdateToggle = document.getElementById("auto-update-toggle");
let watchId = null;
document.getElementById("get-location-btn").addEventListener("click", () => {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
position => {
longitudeDisplay.textContent = position.coords.longitude.toFixed(6);
},
error => {
alert("Не вдалося отримати геолокацію: " + error.message);
});
} else {
alert("Геолокація не підтримується вашим браузером.");
}
});
autoUpdateToggle.addEventListener("change", event => {
if (event.target.checked) {
if (navigator.geolocation) {
watchId = navigator.geolocation.watchPosition(
position => {
longitudeDisplay.textContent = position.coords.longitude.toFixed(6);
},
error => {
alert("Не вдалося оновити геолокацію: " + error.message);
},
{ enableHighAccuracy: true, timeout: 5000 });
}
} else {
navigator.geolocation.clearWatch(watchId);
watchId = null;
}
});
//# sourceURL=pen.js
Цей приклад визначає, чи знаходиться користувач на схід чи захід від Гринвіцького меридіана. Це може бути корисно для інтерфейсів, де потрібно показувати контент залежно від розташування відносно нульового меридіана.
navigator.geolocation.getCurrentPosition((position) => {
const longitude = position.coords.longitude;
console.log(`Ви знаходитесь ${longitude >= 0 ? 'на схід' : 'на захід'} від Гринвіча`);
});
У цьому прикладі довгота використовується для розрахунку приблизної відстані до Гринвіцького меридіана. Це може бути корисним у навчальних додатках для відображення географічних даних або підрахунку відстаней.
navigator.geolocation.getCurrentPosition((position) => {
const longitude = position.coords.longitude;
const distanceFromPrimeMeridian = Math.abs(longitude * 111);
console.log(`Відстань до нульового меридіана приблизно ${distanceFromPrimeMeridian} км.`);
});
Коментарі
Коментарів ще немає — будьте першим!