Geolocation API (Joylashuv)
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
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!
