Skip to content

Web Geolocation API

Foydalanuvchi joylashgan joyni aniqlash

HTML Geolocation API foydalanuvchining geografik joylashuvini aniqlash uchun ishlatiladi.

Maxfiylik

Joylashuvni aniqlash shaxsiy daxlsizlikka daxl qilishi mumkinligi sababli, foydalanuvchi ruxsat bermaguncha joylashuv ma'lumotlari mavjud bo'lmaydi.

Misol

js
let x = document.getElementById('demo')
function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition, showError)
  } else {
    x.innerHTML = "Ushbu brauzerda Geolokatsiya qo'llab-quvvatlanmaydi."
  }
}

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

Brauzer yordami

Geolocation API barcha zamonaviy brauzerlarda qo'llab-quvvatlanadi.

Muhim

Geolocation API faqat HTTPS kabi xavfsiz ulanishlarda ishlaydi. Agar saytingiz HTTP orqali ishlasa, joylashuvni aniqlash so'rovlari ishlamaydi.


Geolocation API-dan foydalanish

Foydalanuvchi joylashgan joyni aniqlash uchun getCurrentPosition() metodidan foydalaniladi.

Misol tushuntirishi:

  1. Geolokatsiya qo'llab-quvvatlanishi tekshiriladi.
  2. Agar qo'llab-quvvatlansa, getCurrentPosition() metodi ishga tushiriladi. Agar yo'q bo'lsa, foydalanuvchiga xabar ko'rsatiladi.
  3. Agar getCurrentPosition() muvaffaqiyatli bo'lsa, u parametrda ko'rsatilgan funksiyaga (showPosition) koordinatalar obyektini qaytaradi.
  4. showPosition() funksiyasi kenglik (Latitude) va boylikni (Longitude) chiqaradi.

Xatolar va rad etishlarni boshqarish

getCurrentPosition() metodining ikkinchi parametri xatolarni boshqarish uchun ishlatiladi. Agar foydalanuvchi joylashuvini aniqlash imkoni bo'lmasa, bajariladigan funksiyani ko'rsatadi:

js
function showError(error) {
  switch (error.code) {
    case error.PERMISSION_DENIED:
      x.innerHTML = "Foydalanuvchi Geolokatsiya so'rovini rad etdi."
      break
    case error.POSITION_UNAVAILABLE:
      x.innerHTML = "Joylashuv ma'lumotlari mavjud emas."
      break
    case error.TIMEOUT:
      x.innerHTML = "Foydalanuvchi joylashuvini aniqlash so'rovi vaqti tugadi."
      break
    case error.UNKNOWN_ERROR:
      x.innerHTML = "Noma'lum xato yuz berdi."
      break
  }
}

Natijani xaritada ko'rsatish

Natijani xaritada ko'rsatish uchun sizga Google Maps kabi xarita xizmati kerak bo'ladi. Olingan kenglik va boylik koordinatalari yordamida foydalanuvchi joylashgan joyni xaritada belgilash mumkin.


Joylashuvga xos ma'lumotlar

Geolokatsiya quyidagi holatlarda juda foydali bo'lishi mumkin:

  • Mahalliy ma'lumotlarni yangilab turish.
  • Foydalanuvchi yaqinidagi diqqatga sazovor joylarni ko'rsatish.
  • Navigatsiya (GPS).

getCurrentPosition() metodi — Qaytariladigan ma'lumotlar

Muvaffaqiyatli bo'lganda, getCurrentPosition() metodi obyekt qaytaradi. Kenglik, boylik va aniqlik xususiyatlari har doim qaytariladi. Boshqa xususiyatlar mavjud bo'lsa qaytariladi:

XususiyatTavsif
coords.latitudeKenglik (decimal)
coords.longitudeBoylik (decimal)
coords.accuracyJoylashuvning aniqligi
coords.altitudeDengiz sathidan balandlik (metrda)
coords.altitudeAccuracyBalandlikning aniqligi
coords.headingYo'nalish (shimoldan soat yo'nalishi bo'yicha darajalarda)
coords.speedTezlik (metr/sekundda)
timestampJavob berilgan sana/vaqt

Geolocation obyektining boshqa metodlari

  • watchPosition() — Foydalanuvchining joriy joylashuvini qaytaradi va u harakatlangan sari yangilangan joylashuvni berishda davom etadi (masalan, mashinadagi GPS kabi).
  • clearWatch()watchPosition() metodini to'xtatadi.