Web Geolocation API

Geolocation API به ما اجازه می‌دهد موقعیت مکانی کاربر (عرض جغرافیایی و طول جغرافیایی) را با جاوااسکریپت دریافت کنیم.
این API در مرورگرها وجود دارد، اما برای استفاده نیاز به اجازه کاربر دارد.

🔹 1. متد اصلی: ()getCurrentPosition

برای دریافت موقعیت فعلی کاربر استفاده می‌شود.

navigator.geolocation.getCurrentPosition( function(position) { console.log("Latitude: " + position.coords.latitude); console.log("Longitude: " + position.coords.longitude); }, function(error) { console.error("Error: " + error.message); } );

📌 پارامترها:

  1. success callback → اگر موقعیت دریافت شد.

  2. error callback → اگر کاربر دسترسی را نداد یا خطایی رخ داد.

🔹 2. ()watchPosition

برای ردیابی موقعیت کاربر به صورت زنده استفاده می‌شود (مثلاً در نقشه‌ها).

let watchId = navigator.geolocation.watchPosition( function(position) { console.log("Latitude: " + position.coords.latitude); console.log("Longitude: " + position.coords.longitude); } );

🔹 3. ()clearWatch

برای متوقف کردن ردیابی موقعیت.

navigator.geolocation.clearWatch(watchId);

🔹 4. شیء position

هر بار که موقعیت دریافت می‌شود، یک شیء شامل اطلاعات زیر برمی‌گردد:

  • coords.latitude → عرض جغرافیایی

  • coords.longitude → طول جغرافیایی

  • coords.accuracy → دقت (متر)

  • coords.altitude → ارتفاع (اگر موجود باشد)

  • coords.speed → سرعت (متر بر ثانیه)

  • timestamp → زمان دریافت موقعیت

🔹 5. مثال کاربردی نمایش در نقشه (Google Maps)

<div id="map" style="width:400px; height:300px;"></div> <script> navigator.geolocation.getCurrentPosition(showPosition); function showPosition(pos) { let lat = pos.coords.latitude; let lon = pos.coords.longitude; let mapUrl = `https://www.google.com/maps?q=${lat},${lon}&hl=fa&z=14&output=embed`; document.getElementById("map").innerHTML = `<iframe src="${mapUrl}" width="400" height="300"></iframe>`; } </script>

🔹 6. نکات امنیتی

  • نیاز به اجازه کاربر دارد.

  • در برخی مرورگرها فقط روی HTTPS یا localhost کار می‌کند.

  • نباید موقعیت مکانی را بدون اطلاع کاربر ذخیره یا به اشتراک گذاشت.

✅ خلاصه

  • ()getCurrentPosition → دریافت یکبار موقعیت فعلی

  • ()watchPosition → ردیابی موقعیت به صورت زنده

  • ()clearWatch → متوقف کردن ردیابی

  • اطلاعات موجود: latitude, longitude, accuracy, altitude, speed, timestamp