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



visibility  
mode_comment   ۹

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

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

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

info توجه

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

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

comment دیدگاه کاربران
Ali Movahedi replyپاسخ

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

سعید شاهینی

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

Ali Movahedi replyپاسخ

سلام

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

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

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

سعید شاهینی

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

علی اصغر جهانی replyپاسخ

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

سعید شاهینی

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

پوریا نخعی replyپاسخ

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

سعید شاهینی

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

پوریا صیامی replyپاسخ

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

ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.