تخفیف ویژه

دوره مجازی اندروید (جلسه 37): کار با نقشه ی گوگل قسمت دوم

دسته بندی: اندروید
زمان مطالعه: 1 دقیقه
۰۱ آذر ۱۳۹۵

مطالب مطرح شده در این جلسه عبارتند از :

  • دریافت Location کاربر با استفاده از LocationManager
  • معرفی Provider ها:
    • GPS
    • Network
    • Passive
  • معرفی اینترفیس LocationListener
  • معرفی اینترفیس OnMapReady
  • اضافه کردن Marker به نقشه
  • تغییر آیکن Marker
  • محاسبه ی فاصله ی بین مبدا و مقصد در نقشه بر اساس کیلومتر و متر
  • کسب مجوز از کاربر در گوشی های اندروید مارشملو به بالا

نکته ی مهم: اگر از شبیه ساز نسخه مارشملو یا بالاتر استفاده می کنید، برای تست کدهای ابتدای جلسه حتماً Permission مربوط به Location را از تنظیمات شبیه ساز و قسمت Apps به اپلیکیشن خود بدهید، در غیر این صورت امکان دریافت لوکیشن وجود نخواهد داشت. در انتهای جلسه این موضوع را کامل توضیح داده ام و مشکلی نخواهید داشت چون Permission به صورت Runtime از کاربر دریافت خواهد شد.

:: توجه

این مطلب یک جلسه از آموزش برنامه نویسی اندروید می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در آموزش برنامه نویسی اندروید

چه امتیازی به این مقاله می دید؟
نویسنده سعید شاهینی

جلسات دوره

نظرات کاربران

پوریا صیامی

سلام. من در قسمت محاسبه ی فاصله ی بین مبدا و مقصد در نقشه مشکل دارم. من عین کدهای شما رو زدم ولی فاصله رو با یه عدد اشتباه نشون میده. مثلا همچین چیزی : 4404.0264 کیلومتر. کدهامم چک کردم مشکلی نداشت و اون /1000 رو هم وارد کردم.

پوریا نخعی

سلام استاد خسته نباشید
با توجه به سیاست های جدید گوگل چجوری میتونیم از گوگل مپ توی برنامه هامون استفاده کنیم؟
توی ثبت نام developers console ازم کارت اعتباری میخواد یعنی باید قید گوگل مپ رو بزنیم؟
چجوری اسنپ از کار نیفتاده؟
و یه سوال دیگه اینکه میشه از bing map توی اندروید استفاده کرد؟؟
ببخشید طولانی شد.
تشکر

سعید شاهینی

سلام، می تونید از OpenStreetMap استفاده کنید ولی من bing map استفاده نکردم، همچنین یه سرویس ایرانی هم هست به اسم سیدار مپ که اون رو نمی دونم نقشه هم می ده یا نه

علی اصغر جهانی

سلام استاد .
من در این جلسه لوکیشن رو که میگیرم تو نقشه آمریکا رو به عنوان جایی که هستم میگیره !
بذون فلترشکنم اصلا لوکیشن رو نمیگیره ؟
چه باید کرد ؟

سعید شاهینی

سلام، دلیلش اینه که سرویس gps دستگاه شما خاموشه یا خراب شده و کار نمی کنه

Ali Movahedi

سلام

چطور می تونم موقعیت کاربر رو لحظه به لحظه بگیرم و در سمت سرور ذخیره کنم و به شخص دیگه ای نمایش بدم؟
باید از سوکت استفاده کنم؟

کلا یک توضیح راجع به اپلیکیشن های لایو بدید.

اگر اموزش خوبی در این زمینه سراغ دارید یا کتابخانه خاصی ممنون میشم معرفی کنید.

سعید شاهینی

سلام٬ این که موقعیت کاربر رو لحظه به لحظه بگیرید داخل دوره آموزش داده شد٬ جلسات مربوط به آموزش پیاده سازی نقشه گوگل مپ!
اما برای پیاده سازی نمایش زنده ی اون به شخص دیگه٬ می تونید از Socket.io استفاده کنید.
کانکشن Socket.io به این شکل هست که ارتباط سرور و کلاینت در حین ارتباط کاملا باز می مونه و هم سرور و هم کلاینت می تونن هر موقع که درخواست داشتن اون درخواست رو ارسال کنند. ولی در سرویس هایی مثل Rest api٬ ارتباط به این شکل هست که شما زمانی که می خواید درخواست ارسال کنید٬ یه Connection باز می شه و وقتی درخواست شما به مقصد رسید یا failed شد٬ ارتباط شما با سرور قطع می شه.
به دلیل همیشه متصل بودن کانکشن در Socket.io ٬ سرعت دریافت و ارسال اطلاعات به شدت افزایش پیدا می کنه ولی خب طبیعتا کاربردش در موارد خاص هست و مزایا و معایب خودش رو داره.

Ali Movahedi

سلام استاد
این پرمیژن ها دیوونم کردن دو ساعته نمیتونم یک لوکیشن رو بگیرم(روی گوشی واقعی)
همش ارور اینکه دسترسی نداری میده
چند تا راهنما داخل استک اور فلو بود تست کردم بازم نشد نمی دونم مشکل از کجاست
دقیقا عین کد شما پیش رفتم

سعید شاهینی

سلام٬ یه نمونه کد بنده قبلا نوشتم٬ داخل پروژه یک کلاسی هست به نام Location Manager از اون می تونید استفاده کنید برای چک کردن Permission. لینک پروژه

پایان زمان پشتیبانی

دانشجوی گرامی، بازه پشتیبانی فعال برای این دوره ۳ ماه است که برای شما به پایان رسیده است.

شما هم چنان می توانید سوالات خود را در این قسمت بپرسید اما اولویت پاسخ گویی با دانشجویانی است که بازه پشتیبانی فعال دارند.

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.