HTML Geolocation


Geolocation API foydalanuvchining joriy joylashuvini olish uchun ishlatiladi.


ULASHISH

Foydalanuvchi o‘rnini aniqlash

Geolocation API foydalanuvchining joriy joylashuviga kirish uchun ishlatiladi.

Bu maxfiylikka putur yetkazishi mumkin bo‘lgani uchun, foydalanuvchi rozilik bermaguncha joylashuv mavjud bo‘lmaydi.

Eslatma: Geolocation API faqat HTTPS kabi xavfsiz muhitlarda ishlaydi.

Maslahat: Geolocation API smartfon yoki aqlli soat kabi GPS o‘rnatilgan qurilmalarda eng aniq natija beradi.


Brauzerlarda qo‘llab-quvvatlash

Jadvaldagi raqamlar Geolocation’ni to‘liq qo‘llab-quvvatlaydigan birinchi brauzer versiyasini bildiradi.

API
Geolocation 5.0 12.0 3.5 5.0 10.6

HTML Geolocation API’dan foydalanish

Geolocation API ga navigator.geolocation chaqiruvi orqali kiriladi. Bu brauzer foydalanuvchidan joylashuv ma’lumotlariga kirish uchun ruxsat so‘rashiga sabab bo‘ladi. Agar foydalanuvchi rozilik bersa, brauzer ushbu ma’lumotga kirish uchun qurilmada mavjud eng yaxshi funksiyani qidiradi (masalan GPS).

getCurrentPosition() metodi foydalanuvchining joriy joylashuvini qaytarish uchun ishlatiladi.

Quyidagi misol foydalanuvchining joriy joylashuvining kenglik va uzunligini qaytaradi:

Misol

<script>
const x = document.getElementById("demo");

function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(success, error);
  } else {
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}

function success(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude +
  "<br>Longitude: " + position.coords.longitude;
}

function error() {
  alert("Sorry, no position available.");
}
</script>
O‘zingiz sinab ko‘ring »

Misol tushuntirilishi:

  • Geolocation qo‘llab-quvvatlanishini tekshirish
  • Agar Geolocation qo‘llab-quvvatlansa, getCurrentPosition() metodini ishga tushiring. Aks holda foydalanuvchiga xabar ko‘rsating
  • success() funksiyasi foydalanuvchining joylashuvini kenglik va uzunlik ko‘rinishida chiqaradi
  • Agar brauzer getCurrentPosition() da xatolik topsa, error() funksiyasi matnli ogohlantirish chiqaradi


Xatolar va rad etilgan so‘rovlarni qayta ishlash

getCurrentPosition() metodining ikkinchi parametri xatoliklarni hal qilish uchun ishlatiladi. U foydalanuvchining joylashuvini olish muvaffaqiyatsiz bo‘lsa ishga tushiriladigan funksiyani belgilaydi.

Bu yerda aniqroq xatoliklarni hal qilish misoli keltirilgan:

Misol

function error(error) {
  switch(error.code) {
    case error.PERMISSION_DENIED:
      x.innerHTML = "User denied the request for Geolocation."
      break;
    case error.POSITION_UNAVAILABLE:
      x.innerHTML = "Location information is unavailable."
      break;
    case error.TIMEOUT:
      x.innerHTML = "The request to get user location timed out."
      break;
    case error.UNKNOWN_ERROR:
      x.innerHTML = "An unknown error occurred."
      break;
  }
}
O‘zingiz sinab ko‘ring »

Joylashuvga oid ma’lumotlar

Geolocation joylashuvga oid ma’lumotlar uchun ham juda foydali, masalan:

  • Dolzarb mahalliy ma’lumotlar
  • Foydalanuvchiga yaqin qiziqarli joylarni ko‘rsatish
  • Yo‘l ko‘rsatuvchi navigatsiya (GPS)

getCurrentPosition() metodi — qaytariladigan ma’lumotlar

getCurrentPosition() metodi muvaffaqiyatli bo‘lsa obyekt qaytaradi. Kenglik, uzunlik va aniqlik xususiyatlari har doim qaytariladi. Qolgan xususiyatlar mavjud bo‘lsa qaytariladi:

Xususiyat Qaytaradi
coords.latitude Kenglik (latitude) o‘nlik son sifatida (har doim qaytariladi)
coords.longitude Uzunlik (longitude) o‘nlik son sifatida (har doim qaytariladi)
coords.accuracy Joylashuv aniqligi (har doim qaytariladi)
coords.altitude O‘rtacha dengiz sathidan balandlik, metrlarda (mavjud bo‘lsa qaytariladi)
coords.altitudeAccuracy Joylashuv balandligining aniqligi (mavjud bo‘lsa qaytariladi)
coords.heading Shimoldan soat mili yo‘nalishi bo‘yicha graduslardagi yo‘nalish (mavjud bo‘lsa qaytariladi)
coords.speed Tezlik, metr/soniyada (mavjud bo‘lsa qaytariladi)
timestamp Javobning sanasi/vaqti (mavjud bo‘lsa qaytariladi)

Geolocation obyekti — boshqa qiziqarli metodlar

Geolocation obyektida boshqa qiziqarli metodlar ham bor:

  • watchPosition() - Foydalanuvchining joriy joylashuvini qaytaradi va foydalanuvchi harakatlanganda yangilangan joylashuvni qaytarishda davom etadi (avtomobildagi GPS kabi).
  • clearWatch() - watchPosition() metodini to‘xtatadi.

Quyidagi misol watchPosition() metodini ko‘rsatadi. Buni sinash uchun aniq GPS qurilmasi kerak (masalan smartfon):

Misol

<script>
const x = document.getElementById("demo");

function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.watchPosition(success, error);
  } else {
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}

function success(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude +
  "<br>Longitude: " + position.coords.longitude;
}

function error(error) {
  switch(error.code) {
    case error.PERMISSION_DENIED:
      x.innerHTML = "User denied the request for Geolocation."
      break;
    case error.POSITION_UNAVAILABLE:
      x.innerHTML = "Location information is unavailable."
      break;
    case error.TIMEOUT:
      x.innerHTML = "The request to get user location timed out."
      break;
    case error.UNKNOWN_ERROR:
      x.innerHTML = "An unknown error occurred."
      break;
  }
}
</script>
O‘zingiz sinab ko‘ring »

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!