مسیریابی به کمک دیگر برنامه ها در اندروید

مسیریابی به کمک دیگر برنامه ها در اندروید
در این پست می‌خوانید:

مسیریابی همواره یکی از مهمترین قابلیت هایی هستش که امروزه همه جوره بهش احساس نیاز پیدا میکنیم.

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

برای مثال برنامه هایی مثل بلد، نشان، گوگل مپ و غیره مسیر‌یابی رو توی برنامه های خودشون تعبیه کردن.

شما هم داخل اپلیکیشن اندروید خودت قصد داری که کاربر بتونه مسیری که مدنظرش هست روی نقشه ببینه و از مبدا تا مقصد رو مرحله به مرحله با اون ادامه بده.

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

یا یک مثال دیگه، فرض کنید برنامه ای نوشتید و قصد دارید که کاربر توسط برنامه شما بتونه اسنپ و تپسی برای خودش بگیره!

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

دمو استفاده از مسیریابی نقشه ها

 

دمو آموزشی رو خوب بهش توجه کردی؟

توی این دمو من یک برنامه ساده ساختم و فرضا کاربر قصد داره که به سمت برج میلاد حرکت کنه.

حالا اگه خودش ماشین داشته باشه میتونه توسط برنامه هایی مثل بلد، نشان، گوگل مپ، و‌یز و … برج میلاد رو مسیر‌یابی کنه و بره.

اگه نه که میتونه روی اسنپ و تپسی کلیک کنه تا مسیر مبدا و مقصد به طور کاملا خودکار توی این برنامه ها اعمال بشه و برای این مسیر درخواست تاکسی کنه.

آموزش استفاده

استفاده کردن از این قابلیت بینهایت راحت هستش.

تقریبا همه برنامه هایی که مبتنی بر مسیریابی و نقشه هستند، از یک اینتنت (Intent) برای اینکار استفاده میکنن.

حالا ما فقط باید این اینتنت رو صدا بزنیم و مسیری که مدنظرمون هست رو در قالب همین اینتنت به برنامه معرفی کنیم.

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

نکته
توی این روش هیچ محدودیتی برای نمایش برنامه به کاربر وجود نداره.
روی گوشی کاربر هر برنامه ای برای مسیر‌یابی وجود داشته باشه همون ها رو نشون میده.

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

val intent = Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=$MILAD_TOWER_LAT,$MILAD_TOWER_LNG"))
startActivity(intent)

همونطور که گفتم برای استفاده کردن از این قابلیت باید از Intent ها استفاده کنی و عبارت geo رو برای قرار بدی.

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

توضیحات تکمیلی Intent

geo : توی این بخش اگه توجه کنی 2 تا صفر قرار داده شده.

این اعداد رو تغییر نده، چون این اعداد به لوکیشن فعلی کاربر اشاره داره.

q : توی این بخش باید Lat و Lng اون محل موردنظرت رو قرار بدی.

من نقاط مربوط به برج میلاد رو توی مغییر ذخیره کردم و همون ها رو به q دادم.

توی q شما باید 2 تا پارامتر بهش پاس بدی.

اولی Lat هستش و دومی هم Lng.

کد نهایی

class NavigationActivity : AppCompatActivity() {

    private val MILAD_TOWER_LAT = "35.74514631220845"
    private val MILAD_TOWER_LNG = "51.375245880320826"

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_navigation)

        navigationBtn.setOnClickListener {
            val intent = Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=$MILAD_TOWER_LAT,$MILAD_TOWER_LNG"))
            startActivity(intent)
        }
    }
}

دیدین چقدر راحت بود؟

با همین کد ساده، یه قابلیت خیلی خفن میتونی به اپلیکیشنت اضافه کنی.

دیدگاه‌ها ۲
ارسال دیدگاه جدید