آموزش ساخت نقشه آفلاین
سلام دوستان
من تا الان خیلی دنبال این بودم که بتونم یه نقشه به صورت آفلاین داخل برنامم داشته باشم ، یک مدتی نزدیک به 1 ماه دنبال این قضیه بودم و خوشبختانه تونستم این کار و انجام بدم . برای همین تصمیم گفتم آموزشش رو برای همه بذارم که شما هم اگه گیر این داستان افتادید وقتتون تلف نشه :)
به زودی این آموزش رو قرار میدم
نقشه آفلاین :
به طورکلی دو تا سرویس ارایه دهنده نقشه وجود دارن : یکی نقشه Google Map و دیگری هم Open Street Map هستش. که هر دوی این سرویس دهنده ها این اجازه رو به ما میدن تا از اونها به صورت آفلاین و آنلاین استفاده کنیم. اما هر کدوم با تفاوت هایی این اجازه رو به ما میدن ، برای مثال :
گوگل مپ این اجازه رو به ما میده تا به صورت آفلاین از نقشه استفاده کنیم ولی فقط یه محدوده کوچک مثل محدوده منطقه زندگی ! پس عملا استفاده از گوگل مپ به عنوان یک نقشه آفلاین کاربرد زیادی برای توسعه دهنده و حتی کاربر هم نداره (چون حداقل نیاز هستش تا کاربر نقشه شهر خودش رو داشته باشه) !
Open Street Map : این سرویس ارایه دهنده نقشه نیز به صورت کاملا رایگان خدماتش رو ارایه میده ( و حتی این اجازه رو به کاربران میده تا با عضویت در سایتش Open Street Map ، بتونن اطلاعات روی نقشه رو تغییر بدن و اطلاعات رو جایگزین کنند و یا اطلاعاتی رو اضافه کنند ! البته بعد از ثبت تغییرات تقریبا یک روز تا قرار گیری اطلاعات جدید طول میکشه.) با کمک این API میشه نقشه آفلاین رو بدون محدودیت در مساحت ایجاد کرد.
اما استفاده مستقیم از این نقشه به صورت مستقیم خیلی دردسر داره و به همین خاطر روش های زیادی وجود دارند که در ادامه به توضیح این روش ها می پردازیم .
یکی از ساده ترین و بی دردسرترین روش ها برای استفاده از Offline Map استفاده از سرویس دهنده های مثل شرکت های زیر هستش :
1- getyourmap
2-Mapbox
این تا از بهترین ها هستن بنظرم ، هر دوی این شرکت ها نقشه هایی رو با کمک OpenStreetMap برای حالت آفلاین فراهم میکنن و البته یکسری ویژگی های خاص و فوق العاده هم برای خودشون ایجاد کردن و در کل استفاده از نقشه ها کار خاصی نداره و مثل این میمونه که یه لایبراری رو به برنامتون اضافه کنید .
در حال تکمیل ....
روش استفاده از MapBox (یک نقشه آفلاین با کلی امکانات عالی !)
اول از همه باید توی قسمت build.gradle این کد ها رو اضافه کنید :
repositories { mavenCentral() } dependencies { compile ('com.mapbox.mapboxsdk:mapbox-android-sdk:4.2.0@aar'){ transitive=true } }
حالا برید توی منیفست برنامه و این دسترسی ها رو بهش بدید :
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" />
و حالا این کد رو هم باید در منیفست قرار بدید :
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .