سبد (0)

تبلیغات

سیستم موقعیت یاب جهانی HTML5

سیستم موقعیت یاب HTML5 برای پیدا کردن موقعیت یک کاربر استفاده می شود.


سیستم موقعیت یاب جهانی HTMl5

بوسیله سیستم موقعیت یاب جهانی Html5 می توانید مختصات و موقعیت جغرافیایی یک کاربر را پیدا کرده و به وی نمایش دهید. این سیستم از اطلاات ماهواره ها و ISP ای که به آن متصل هستید، برای اطلاع از موقعیت شما استفاده می کند.

از آنجایی که موقعیت یابی می تواند حریم خصوصی کاربر را تحت تاثیر قرار دهد، موقعیت وی تا زمانی که خودش تایید نکند، در اختیار برنامه قرار نخواهد گرفت.


پشتیبانی مرورگرها

Internet Explorer Firefox Opera Google Chrome Safari

مرورگرهای Internet Explorer 9+, Firefox, Opera, Chrome, Safari سیستم موقعیت یاب HTML5 را پشتیبانی می کنند.

توجه: سیستم موقعیت یاب HTML5 در دستگاه هایی که دارای GPS هستند (مانند iPhone) دقیق تر کار می کند.


اطلاع از موقعیت کنونی کاربر

از متد ()getCurrentPosition برای اطلاع از موقعیت کنونی کاربر استفاده می شود.

مثال زیر یک کد ساده موقعیت یابی را نشان می دهد که بوسیله آن عرض و طول جغرافیایی مکان کاربر را بر روی صفحه، نمایش می دهد:

مثال (سیستم موقعیت یاب جهانی HTML5)

<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>
خودتان امتحان کنید »

توضیح مثال:

  • در مرحله اول چک شده که آیا مرورگر از سیستم موقعیت یاب در HTML پشتیبانی می کند یا خیر و در صورت لزوم کد های مناسب اجرا می شود.
  • اگر مرورگر از این سیستم پشتیبانی کند، متد ()getCurrentPosition اجرا شده و در غیر این صورت یک پیام هشدار مبنی بر عدم پشتیبانی مرورگر صادر می شود.
  • اگر متد ()getCurrentPosition با موفقیت اجرا شود، مختصات نقطه قرارگیری کاربر را بوسیله یک پارامتر به تابع ()ShowPosition برمی گرداند.
  • تابع ()ShowPosition طول و عرض جغرافیایی کاربر را در خروجی نمایش می دهد.

مثال فوق کد ساده یک عملیات موقعیت یابی بدون امکان خطا یابی بود و در بخش بعد نحوه خطا یابی در این سیستم را آموزش می دهیم.


مدیریت خطاها و عدم جوابگویی سیستم

ممکن است در فرایند موقعیت یابی، خطا هایی رخ دهد. از پارامتر دوم متد ()getCurrentPosition می توان برای مدیریت خطا های احتمالی استفاده کرد.

این پارامتر یک تابع را تعیین می کند تا در صورت بروز خطا، اجرا شده و پیام لازم را به کاربر نمایش دهد:

مثال (سیستم موقعیت یاب جهانی HTML5)

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;
}
}
خودتان امتحان کنید »

توضیح کد:

  • PERMISSION_DENIED: در این حالت کاربر اجازه دسترسی به موقعیت یابی را نداده است.
  • POSITION_UNAVAILABLE: در این حالت یافتن موقعیت صحیح کاربر به علت مشکلات فنی ممکن نیست.
  • TIMEOUT: در این حالت مدت زمان لازم برای اجرای درخواست تمام شده است.
  • UNKNOWN_ERROR: خطای ایجاد شده نا مفهوم است.

نمایش موقعیت کاربر بر روی یک نقشه

برای نمایش موقعیت کاربر بر روی یک نقشه، به یک سرویس دهنده مانند Google Maps نیاز دارید:

مثال (سیستم موقعیت یاب جهانی HTML5)

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+"'>";
}
خودتان امتحان کنید »

در مثال بالا، از طول و عرض جغرافیایی برای نمایش موقعیت کاربر در Google Maps استفاده شده است. (از یک عکس استاتیک استفاده شده است)

Google Map Script
در این مثال، چگونگی نمایش یک نقشه تعاملی تر با ابزارهای zoom ،drag و marker نشان داده شده است.


داده هایی که متد ()getCurrentPosition برمی گرداند

اگر متد ()getCurrentPosition با موفقیت اجرا شود، یک شیء برمی گرداند. خصوصیت های latitude ,longitude و accuracy همیشه برگردانده می شوند. در جدول زیر دیگر خصوصیت های این شیء آورده شده است:

خصوصیت توضیحات
coords.latitude

عرض جغرافیایی

coords.longitude

طول جغرافیایی

coords.accuracy

دقت و درستی مکان کاربر

coords.altitude The altitude in meters above the mean sea level
coords.altitudeAccuracy The altitude accuracy of position
coords.heading The heading as degrees clockwise from North
coords.speed The speed in meters per second
timestamp The date/time of the response

متدهای دیگر شیء geolocation

متد ()watchPosition: مکان فعلی کاربر را برمی گرداند و در صورت جابه جا شدن کاربر، داده را تازه سازی می کند. (مانند دستگاه GPS در یک خودرو)

متد ()clearWatch: باعث توقف متد ()watchPosition می شود.

در مثال زیر، متد ()watchPosition، نشان داده شده است. برای تست این مثال، به یک دستگاه GPS دقیق نیاز دارید: (مانند iPhone)

مثال (سیستم موقعیت یاب جهانی HTML5)

<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>
خودتان امتحان کنید »

دیدگاه‌ها  

+1 # mohsen1851 1397-03-27 16:43
با سلام.ممنون بابت زحماتتون.یه انتقادی دارم از سایتتون.اول اینکه سوالات رو جواب نمیدید!!!
دوم اینکه این قسمت از آموزشتون تو قسمت"خودتان امتحان کنید" کار نمیکنه.چون باید سایتتون گواهی ssl بگیره.
امانکته ای که نهایتا بنده سوال دارم اینه که از از سال 2016 گوگل برای نمایش نقشه کابران رو ملزم کرده تا key رو از گوگل دریافت کنن ولی توی سایت اشاره ای به این موضوع نشده
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # فرشاد مهریار 1394-11-07 11:57
سلام. من اینجا یک دیدگاه نوشتم، ولی نیستش!
پرسیده بودم که چطور میشه نقشه رو به کاربر نمایش داد، تا کاربر نقطه ای از نقشه رو انتخاب کنه، و مختصات اون نقطه رو بتونیم ذخیره کنیم؟
برای سایت مشاور املاک میخوام. میخوام اعضای سایتم، مکان ملک خودشون رو روی نقشه مشخص کنن و مختصات اون نقطه، در دیتابیس سایتم ذخیره بشه.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # پیمان بندی 1394-11-07 20:50
سلام
لطفا بفرمایید که مدیریت محتوا شما چیست؟
و یا تحت چه زبانی نوشته شده
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # فرشاد مهریار 1394-11-15 13:30
سلام. مرسی که جواب میدید. از مدیریت محتوا و امکانات آماده مثل ورد پرس استفاده نشده، طراحی و برنامه نویسیش کار خودمه. یک سایت مشاور املاکه، که مثل سایر سایت ها در این حوزه، امکان ثبت و جستجوی املاک رو داره. با ای.اس.پی دات نت، و سی شارپ طراحی شده.

با سپاس از پیگیری شما.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # فرشاد مهریار 1394-11-20 12:06
سلام. لطفا جواب بدید.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # مهرداد صلاحی 1394-11-20 14:23
با سلام.
تا جایی که من اطلاع دارم، گوگل‌ یک api گوگل‌مپ داره که تو اکثر سایت‌ها از اون استفاده میشه.
تو مختصات نقشه هم تا جایی که اطلاع دارم دو عدد هست به اسم لت و لان که عرض و طول جغرافیایی رو مشخص می‌کنه. هر نقطه‌ای در جهان دارای این دو عدد هست.

تو گوگل api گوگل‌مپ رو سرچ کنید، مطالب مرتبط گیر خواهید آورد.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # فرشاد مهریار 1394-11-20 15:18
مرسی که جواب دادید. بله متوجه هستم ، اما من هرچی پیدا میکنم درمورد دادن اون دو نقطه به نقشه و در نتیجه نمایش اون مکان روی نقشه است. ولی من دقیقا عکس این کارو میخوام انجام بدم. یعنی نقطه رو کاربر مشخص کنه و نقشه به من طول و عرض رو بده!
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # مهرداد صلاحی 1394-11-20 17:03
یه سری هم به این سایت بزنید:
http://www.armangeomatics.ir/GeoUTM.aspx
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+5 # مهرداد صلاحی 1394-11-20 16:44
خواهش میکنم.
فکر می‌کنم تو گوگل مپ باید این قابلیت وجود داشته باشه. به این لینک یه سر بزن:
https://support.google.com/maps/answer/18539?hl=en

ببین چیزی پیدا می‌کنی یا نه.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # فرشاد مهریار 1394-11-22 16:24
آقا مهرداد دمت گرم داداش. ولی متأسفانه این لینک ها کمکی نکرد. کلا درمورد مسائل دیگه ای بودن! شایدم هنوز متوجه منظور من نشدید :-(
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+6 # مهرداد صلاحی 1394-11-22 18:56
خواهش می‌کنم. من در این زمینه کار نکردم.
مواردی که گفتم بیشتر شنیده‌هایی هست که از دوستان یاد گرفتم.

تا جایی که می‌دونم شما باید دنبال لت و لان توی نقشه باشید. این عبارت رو به انگلیسی توی گوگل سرچ کنید، احتمال داره مطالبی گیر بیارید.

باز هم عذرخواهی بابت اینکه بیشتر از این نتونستم کمکی کنم.
موفق باشید.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # sara 1394-01-26 21:56
سلام
اگه جواب سوالمو بدید ممنون میشم.. راهی هست که به صورت خودکار فقط نام شهر کاربر نمایش داده بشه تو سایت به جای طول و عرض جغرافیایی یا جای نقشه؟؟؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # احسان عباسی 1394-01-27 17:20
سلام . به نظر می رسد آنچه که شما نیاز دارید، google maps geocoder باشد.
در لینک زیر همین سوال شما پرسیده شده است و جوابهایی نیز برای آن آورده شده که می توانید برای اطلاعات بیشتر به آن رجوع کنید:
stackoverflow.com/questions/6797569/get-city-name-using-geolocation
در لینک بالا یک کد برای برگرداندن نام شهر آورده شده است اما این کد کار نمی کند زیرا که گوگل استفاده از google geocoder را برای کاربران ایرانی تحریم کرده است.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # sara 1394-01-27 19:59
پس سایتهایی مثل دیوار چطوری شهر کاربر را به صورت خودکار در زمان ورود به سایت نشون میدن و اطلاعات مربوط به همون شهر رو بالا میارن؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # احسان عباسی 1394-01-28 09:09
خدمت شما عرض کنم که اگر با یک مرورگر برای اولین بار وارد سایت دیوار شوید، این سایت از ابتدا شهر شما را نمی تواند تشخیص دهد. بعد که شما روی یک شهر کلیک می کنید، نام آن در یک کوکی ذخیره شده و در دفعات بعدی که وارد این سایت می شوید نام شهر کلیک شده نمایش داده می شود. بنابراین اگر شهر شما شیراز باشد، ولی روی شهر اصفهان کلیک کنید، در دفعات بعدی شهر اصفهان در سایت دیوار نمایش داده می شود.این نشانی است برای استفاده از کوکی ها.
با استفاده از وب سرویس زیر می توانید نام کشور بازدید کننده و شهر او را به دست بیاورید اما مشکلی که همیشه وجود دارد این است که isp ها مکان مشتریان خود را پنهان می کنند، بنا براین در وب سرویس لینک شده ی زیر نام شهر شاید به درستی نمایش داده نشود.
www.geoplugin.com/examples
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # sara 1394-01-25 11:05
سلام خسته نباشید
امکان داره راهنمایی کنید اگه بخواهیم به جای طول و عرض جغرافیایی یا نمایش نقشه، فقط نام شهر محل سکونت کاربر را در سایت نشان دهیم چیکار باید انجام بدیم؟ مرسی
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه پرداخت آنلاین - بانک اقتصاد نوین پرداخت آنلاین - بانک سامان
 
دوره های آموزشی راه اندازی کسب و کارهای اینترنتی
تبلیغات اینترنتی