Geolocation API (Joylashuv)


ULASHISH

Foydalanuvchi o‘rnini aniqlash

HTML Geolocation API foydalanuvchining geografik joylashuvini olish uchun ishlatiladi.

Bu maxfiylikni buzishi mumkinligi sababli, agar foydalanuvchi ma’qullamasa, pozitsiya mavjud emas.

Sinab ko‘ring

Geolokatsiya smartfonlar kabi GPSga ega qurilmalar uchun eng aniq hisoblanadi.

Brauzerlarda qo‘llab-quvvatlash

Geolocation API barcha brauzerlarda qo‘llab-quvvatlanadi:

Ha Ha Ha Ha Ha

Geolocation API faqat HTTPS kabi xavfsiz kontekstlarda ishlaydi.

Agar saytingiz xavfsiz bo‘lmagan manbada (masalan, HTTP) joylashgan bo‘lsa, foydalanuvchi joylashuvini olish so‘rovlari endi ishlamaydi.


Geolocation API’dan foydalanish

getCurrentPosition() usuli foydalanuvchi pozitsiyasini qaytarish uchun ishlatiladi.

Quyidagi misol foydalanuvchi joylashuvining kenglik va uzunligini qaytaradi:

Misol

<script>
const x = document.getElementById("demo");
function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
  } else {
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}

function showPosition(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude +
  "<br>Longitude: " + position.coords.longitude;
}
</script>
O‘zingiz sinab ko‘ring »

Misol tushuntirilishi:

  • Geolocation qo‘llab-quvvatlanishini tekshirish
  • Agar qo‘llab-quvvatlansa, getCurrentPosition() metodini ishga tushiring. Aks holda, foydalanuvchiga xabar ko‘rsating
  • Agar getCurrentPosition() metodi muvaffaqiyatli bajarilsa, u parametrda ko‘rsatilgan funksiyaga (showPosition) koordinatalar obyektini qaytaradi
  • showPosition() funksiyasi kenglik va uzunlikni chiqaradi

Yuqoridagi misol juda oddiy Geolocation skripti bo‘lib, hech qanday xatolik yo‘q.



Xatolar va rad etishlarni qayta ishlash

getCurrentPosition() usulining ikkinchi parametri ishlov berish uchun ishlatiladi xatolar. U foydalanuvchining joylashuvini ololmasa, ishga tushirish funksiyasini belgilaydi:

Misol

function showError(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 »

Natijani xaritada ko‘rsatish

Natijani Map’da ko‘rsatish uchun sizga Google Map’lar kabi Map xizmatiga kirishingiz kerak.

Quyidagi misolda qaytarilgan kenglik va uzunlik Google Xaritadagi joylashuvni ko‘rsatish uchun ishlatiladi (statik rasm yordamida):

Misol

function showPosition(position) {
  let latlon = position.coords.latitude + "," + position.coords.longitude;

  let img_url = "https://maps.googleapis.com/maps/api/staticmap?center=
  "+latlon+"&zoom=14&size=400x300&sensor=false&key=YOUR_KEY";

  document.getElementById("mapholder").innerHTML = "<img src='"+img_url+"'>";
}

Joylashuvga oid ma’lumotlar

Ushbu sahifada foydalanuvchining xaritadagi o‘rnini qanday ko‘rsatish mumkinligi ko‘rsatilgan.

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() usulini ko‘rsatadi. Buni tekshirish uchun sizga aniq GPS qurilmasi kerak (masalan smartfon):

Misol

<script>
const x = document.getElementById("demo");
function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.watchPosition(showPosition);
  } else {
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}
function showPosition(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude +
  "<br>Longitude: " + position.coords.longitude;
}
</script>
O‘zingiz sinab ko‘ring »

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!