تستخدم HTML5 تقنية الموقع الجغرافي لتحديد مكان المستخدم .
تحديد مكان المستخدم
تستخدم HTML5 تقنية الموقع الجغرافي لتحديد مكان المستخدم وذلك من خلال واجهة التطبيقات البرمجية API .
كما أن هذه العملية تحمي خصوصية المستخدم لذلك لن يتم تفعيل هذه الخدمة مالم يقم المستخدم بالموافقة على استخدامها .
المتصفحات الداعمة
| | | |تعتبر هذه الخاصية مدعومة من جميع المتصفحات الحديثة من Internet Explorer 9 و Firefox Chrome و Safari و Opera .
ملاحظة : تستخدم خاصية تحديد المكان الجغرافي بشكل أفضل على الهواتف الذكية التي تحتوي على GPS مثل هواتف أي فون .
استخدام تحديد الموقع الجغرافي
يمكن استخدام تحديد الموقع الجغرافي من خلال الدالّة
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>
شرح المثال السابق
- يتم الفحص اذا كان المتصفح يدعم
Geolocation
. - اذا كان يدعم هذه الخاصية عندها سيعمل
getCurrentPosition()
و اذا لم يكن يدعم عندها ستظهر رسالة للمستخدم . - اذا كانت الطريقة
getCurrentPosition()
ناجحة عندها سيتم تحديد الاحداثيات و ارسالها الى الدالّة المحددة في showPosition . - سيتقوم الدالّة
showPosition()
بتحديد و إظهار خطوط الطول و العرض للموقع .
يعتبر المثال السابق بسيط جداً و لايمكن حدوث أي أخطاء فيه .
التعامل مع الأخطاء و رفض الطلب
يقوم البارامتر الثاني في
getCurrentPosition()
بتحديد الأخطاء الموجودة في الكود كما أنها تقوم بتشغيل الدالّة في حال فشلت في الحصول على موقع المستخدم .مثال
function showError(error) { switch(error.code) { case error.PERMISSION_DENIED: x.innerHTML="رفض المستخدم تحديد مموقعه" break; case error.POSITION_UNAVAILABLE: x.innerHTML="معلومات الموقع الجغرافي غير متوفرة" break; case error.TIMEOUT: x.innerHTML="انتهى طلب الحصول على " break; case error.UNKNOWN_ERROR: x.innerHTML="حدث خطأ غير معروف" break; } }
أنواع كود الأخطاء
- الطلب مرفوض : لم يقم المستخدم بالسماح بخاصية تحديد الموقع .
- المكان غير متوفر : لا يمكن الحصول على الموقع الحالي .
- انتهاء الوقت : انتهاء وقت العملية .
عرض النتيجة على الخريطة
لعرض النتيجة على الخريطة تحتاج الى موافقة على خدمة الخريطة و التي تمكنك من استخدام أدوات خطوط الطول و العرض مثل خرائط جوجل :
مثال
function showPosition(position) { var latlon=position.coords.latitude+","+position.coords.longitude; var img_url="http://maps.googleapis.com/maps/api/staticmap?center=" +latlon+"&zoom=14&size=400x300&sensor=false"; document.getElementById("mapholder").innerHTML="<img src='"+img_url+"' />"; }
استخدمنا في المثال السابق بيانات خطوط الطول و العرض و ذلك لإظهار الموقع على خريطة جوجل ( باستخدام صورة ثابتة ) .
تحديد معلومات معينة من الموقع الجغرافي
تشرح هذه الفقرة كيفية إظهار موقع المستخدم على الخريطة كما أن الموقع الجغرافي مفيد جداً لجلب معلومات معينة من الموقع .
أمثلة
- معلومات محلية حتى اللحظة .
- إظهار نقاط قريبة من اهتمامات المستخدم
- واحدة بواحدة كالقائمة (GPS) .
استخدام الدالّة getCurrentPosition()
لجلب البيانات
تستخدم الطريقة
getCurrentPosition()
لجلب كائن اذا كانت العملية ناجحة . كما يتم استرجاع خطوط الطول و العرض كما يتم أيضاً استرجاع الخصائص التالية اذا كانت متوفرة :الخاصية | الشرح |
---|---|
coords.latitude | إظهار خطوط العرض كرقم عشري |
coords.longitude | إظهار خطوط الطول كرقم عشري |
coords.accuracy | إظهار دقة الموقع |
coords.altitude | قياس الارتفاع بالمتر على مستوى سطح البحر |
coords.altitudeAccuracy | دقة ارتفاع الموقع الجغرافي |
coords.heading | إظهار رأس الدرجات باتجاه عقارب الساعة من جهة الشمال |
coords.speed | قياس السرعة بالمتر في الثانية |
timestamp | استجابة حسب التاريخ أو الوقت |
طرق أخرى مفيدة لتحديد الموقع الجغرافي
يمكن استخدام
watchPosition()
لاسترجاع الموقع الحالي للمستخدم و يستمر ليسترجع الموقع الجديد للمستخدم في حال انتقاله الى موقع آخر .يمكن استخدام
clearWatch()
و ذلك لإيقاف عمل watchPosition()
.مثال
<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>
شكرا على مجهوداتك
ردحذف