ویرگول
ورودثبت نام
محمدرضا رازیان
محمدرضا رازیانعلاقمند به حوزه علوم و مهندسی رایانه
محمدرضا رازیان
محمدرضا رازیان
خواندن ۳ دقیقه·۶ ماه پیش

یافتن آدرس دقیق در گوشی‌های اندرویدی (با سرویس‌های گوگل)

برای خیلی‌ها این سوال مطرح است که چگونه گوگل به مکان دقیق ما پی می‌برد بدون اینکه در آن مکان سیگنال GPS وجود داشته باشد. در این نوشتار علاوه بر پاسخ این سوال، نکات جذاب دیگری پیرامون یافتن موقعیت مکانی ارائه می‌شود.

یافتن موقعیت مکانی از طریق ماهواره (منبع تصویر)
یافتن موقعیت مکانی از طریق ماهواره (منبع تصویر)

معمولا وقتی بحث دریافت موقعیت مکانی می‌شود از اصطلاح GPS استفاده می‌شود هرچند GPS، تنها نام یک سامانه است که به عنوان اولین سامانه یافتن موقعیت مکانی ارائه شد و مورد استفاده قرار گرفت و به همین خاطر باعث شد کاربران به سامانه‌های ماهواره‌ای مورد استفاده جهت مکان‌یابی به اشتباه GPS بگویند. اصطلاح صحیح GNSS است بدین معنی:

سامانه ماهواره‌ای ناوبری جهانی (GNSS) به مجموعه‌ای از سامانه‌های ماهواره‌ای گفته می‌شود که برای موقعیت‌یابی و ناوبری جهانی استفاده می‌شوند. این سامانه‌ها با ارسال سیگنال‌های رادیویی از ماهواره‌ها به گیرنده‌ها، امکان تعیین موقعیت دقیق در هر نقطه‌ای از زمین را فراهم می‌کنند.

سامانه‌های ماهواره‌ای ناوبری (GNSS, Global Navigation Satellite System) مختلفی نظیر GPS امریکایی، بیدو (BeiDou) چینی، GLONASS روسیه و GALILEO اتحادیه اروپا وجود دارند که یک یا چند مورد از آن‌ها جهت دریافت موقعیت مکانی در تجهیزات (مانند گوشی هوشمند) مورد استفاده قرار می‌گیرند.

برخی از سامانه‌های GNSS (منبع تصویر)
برخی از سامانه‌های GNSS (منبع تصویر)

اما بحثی که این نوشتار به آن می‌پردازد این است که زمانی که امواج این ماهواره‌ها در دسترس نیست، چگونه موقعیت مکانی به برنامک‌ها ارائه می‌شود. مثلا فرض کنید در محوطه مسقف باغ کتاب تهران هستید چگونه برنامک تاکسی اینترنتی، موقعیت مکانی‌تان را تشخیص می‌دهد؟

در این شرایط (زیر سقف، درون برج‌ها)، از روش‌های شبکه‌ای (بر خلاف ماهواره‌ای) برای بدست‌آوردن موقعیت مکانی استفاده می‌شود. روش‌های شبکه‌ای (Network-based) یعنی از داده‌های شبکه‌ای جهت تخمین موقعیت مکانی استفاده می‌شود. داده شبکه‌ای مثل چی؟ مثلا اطلاعات مروبط به مودم وای‌فای‌ای که در محدوده پوشش آن هستید! یا دستگاه‌های بلوتوثی که در محدوده آن حضور دارید.

موقعیت مکانی مبتنی بر شبکه در اندروید به روشی اشاره دارد که دستگاه شما موقعیت مکانی خود را با استفاده از سیگنال‌های شبکه‌های تلفن همراه و نقاط دسترسی Wi-Fi تخمین می‌زند، نه اینکه صرفاً به GNSS متکی باشد. سرویس دقت موقعیت مکانی اندروید (که قبلاً سرویس‌های موقعیت مکانی گوگل نام داشت) داده‌های این منابع را به همراه حسگرهای دستگاه ترکیب می‌کند تا موقعیت مکانی سریع‌تر و دقیق‌تری را ارائه دهد، به خصوص در داخل خانه یا در مناطقی که دریافت سیگنال ماهواره‌ای ضعیفی دارند.

بنابراین، در مثال حضور در محوطه سرپوشیده باغ کتاب، با کنار هم قرار دادن داده مربوطه به اطلاعات مودم وای‌فای (MAC Address) موجود در باغ کتاب و قدرت سیگنال آن (در گوشی شما) و موقعیت مکانی آن مودم وای‌فای (که پیش‌تر در پایگاه داده ذخیره شده است)، موقعیت مکانی شما بدست می‌آید. شناسایی موقعیت مکانی وای‌فای از بیرون ساختمان می‌تواند در دسترس باشد یعنی جایی که سیگنال ماهواره برای ثبت موقعیت مکانی آن با کمک گوشی شما! هنوز در دسترس است.

استفاده از داده‌های شبکه‌ای جهت تخمین موقعیت مکانی (منبع تصویر)
استفاده از داده‌های شبکه‌ای جهت تخمین موقعیت مکانی (منبع تصویر)

علاوه بر شرایطی که در آن سیگنال ماهواره وجود ندارد دلیل دیگر استفاده از روش‌های شبکه‌ای برای یافتن موقعیت مکانی، زمان (سرعت یافتن موقعیت مکانی) است. تخمین موقعیت مکانی با استفاده از ترکیب اطلاعات از طریق دریافت اطلاعات چهار ماهواره است که ممکن از چند ده ثانیه به طول بینجامد. در این فاصله نیز از داده‌های شبکه‌ای برای یافتن حدود موقعیت مکانی شما استفاده می‌شود.

استفاده از پارامترهای برج‌های مخابراتی جهت تخمین موقعیت مکانی (منبع تصویر)
استفاده از پارامترهای برج‌های مخابراتی جهت تخمین موقعیت مکانی (منبع تصویر)

علاوه بر سیگنال وای‌فای و حسگرها، استفاده از داده‌ها (قدرت سیگنال دریافتی) و موقعیت مکانی شما نسبت به برج‌های شبکه‌های مخابراتی نیز می‌تواند در تخمین موقعیت مکانی شما استفاده شود؛ البته منوط به پشتیبانی مودم گوشی (base-band) در تامین پارامترهای چندین برج مخابراتی! بگذریم...

چگونه داده‌های شبکه‌ای جمع‌آوری می‌شوند؟

زمانی که گزینه دقت مکان‌یابی (Location Accuracy) در تنظیمات گوشی اندروید روشن باشد (می‌شود!)، اطلاعاتی درباره سیگنال‌های وایرلس مانند نقاط اتصال وای‌فای (Wi-Fi access point)، برج‌های ارتباطات مخابراتی (cellular network tower) به همراه داده‌های حسگر‌های گوشی مانند حسگر شتاب‌سنج یا جهت‌نما، برای تخمین دقیق‌تر موقعیت مکانی دستگاه استفاده می‌شود.

مشاهده نماهای زیر از گوشی اندرویدی به درک شیوه طراحی رابط/تجربه کاربری گوگل (به منظور ترغیب کاربر) جهت دریافت، ذخیره‌سازی و پردازش داده‌های شبکه‌ای کاربران برای استفاده در سرویس موقعیت مکانی کمک زیادی می‌نماید.

فعال‌سازی خودکار وای‌فای ذخیره شده (بدون اینکه کاربر آن را روشن نماید)
فعال‌سازی خودکار وای‌فای ذخیره شده (بدون اینکه کاربر آن را روشن نماید)
ترکیب داده‌های وای‌فای و موقعیت مکانی
ترکیب داده‌های وای‌فای و موقعیت مکانی

آماده‌سازی ساز و کار دفاع قضایی/حقوقی گوگل در محاکم
آماده‌سازی ساز و کار دفاع قضایی/حقوقی گوگل در محاکم
ترغیب کاربر به روشن نگه‌داشتن لوکیشن در گوشی
ترغیب کاربر به روشن نگه‌داشتن لوکیشن در گوشی

دریافت مجوز ارسال داده جهت تکمیل پایگاه داده برای استفاده در مکان‌یابی
دریافت مجوز ارسال داده جهت تکمیل پایگاه داده برای استفاده در مکان‌یابی

برای اینکه بدانید معمولا چه زمانی این مجوزها توسط کاربر داده می‌شود مطالعه این صفحه را توصیه می‌کنم.

سپاس از توجه شما

موقعیت مکانیgpsاندروید
۳
۰
محمدرضا رازیان
محمدرضا رازیان
علاقمند به حوزه علوم و مهندسی رایانه
شاید از این پست‌ها خوشتان بیاید