براي دريافت موقعيت يك كاربر ازHTML Geolocation API استفاده ميشود .
براي يافتن موقعيت جغرافيائي كاربر ازHTML Geolocation API استفاده ميشود .ار انجائيكه اين مي تواند حريم خصوصي افراد را بخطر باندازد، اين موقيعت از طريق تائيد كاربر امكان پذير ميباشد.
توجه ـ موقعيت جغرافيائي براي دستگاه هاي داراي گوشي هوشمند مثلGPS دقيق ترين است .
در جدول زير اولين نسخه كه مرورگر از موقعيت جغرافيائي پشتيباني ميكند نشان داده شده است.
API | Chrome | Edge | Firefox | Safari | Opera |
Geolocation | 5.0 -49.0
(http) 50.0 (https) | 9.0 | 3.5 | 5.0 | 16.3 |
توجه ـ ازChrome 50 موقعيت يابي API فقط براي زمينه هاي امن مثل HTTPS كار ميكنند اگر سايت در محيط مبنائي غير امن باشد مثلHTTP در خواست مكان يابي انجام نميشود.
با متد يا تابعgetCurrentPosition() جاوااسكريپت براي دريافت موقعيت كاربر استفاده ميشود.
مثال ـ دراين مثال طول وعرض موقعيت جغرافيائي كاربر را نشان ميدهد.
<script> var 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 >
نكته ـ توابع يا متدهاي جاوااسكريپت نسبت به حروف حساس هستند، همان طوريكه تعريف شده بايد استفاده كرد.
توجه ـ مثال بالا يك اسكريپت ساده براي موقعيت يابي است كه بدون خطايابي تنظيم شده است.
دومين پارامتر متدgetCurrentPosition() براي بررسي خطاها است .در آن تابعي مشخص ميشود كه در صورتيكه موقعيت كاربر بدست نيايد، آن تابع براي بررسي خطا اجرا ميشود.
مثال ـ بررسي خطاهاي موقعيت يابي
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;
}
}
در اين صفحه نحوه نمايش موقعيت كاربر در روي نقشه نشان داده شده است .درآن اطلاعات خاص موقعيت جغرافيائي كه با اهميت ميباشدمثل موارد زير:
متدgetCurrentPosition() در صورت موفقيت يك شي اطلاعاتي را برگشت ميدهد .اين شي ويژگي هاي طول وعرض ودقت هميشه برگشت ميشوند، اما مابقي در صورت موجود بودن برگشت ميشوند.
Property | Returns |
---|---|
coords.latitude | The latitude as a decimal number (always returned) |
coords.longitude | The longitude as a decimal number (always returned) |
coords.accuracy | The accuracy of position (always returned) |
coords.altitude | The altitude in meters above the mean sea level (returned if available) |
coords.altitudeAccuracy | The altitude accuracy of position (returned if available) |
coords.heading | The heading as degrees clockwise from North (returned if available) |
coords.speed | The speed in meters per second (returned if available) |
timestamp | The date/time of the response (returned if available) |
شيGeolocation داراي متدهاي جالب ديگريست كه در زير بيان شده است :
مثال ـ در مثال زير متدwatchPosition() را نشان ميدهد .براي آزمايش نيازمند يك دستگاه گوشي هوشمند ميباشيد مثلGPS در ماشين
<script> var 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 >