آموزش کار با نقشه گوگل(google map) در برنامه های اندرویدی (اندروید استودیو)

توضیح کلی درباره دوره:

این دوره یه دوره نسبتا کوتاه هست که توی اون به آموزش استفاده از گوگل مپ توی برنامه اندرویدی خودمون پرداختیم.
همون طور که میدونید استفاده از نقشه توی برنامه های مربوط خیلی میتونه مفید و کاربردی باشه و تعامل بیشتری با کاربر برقرار میکنه…
بنده مهدی میرزاده مدرس این دوره هستم و سعی کردم قسمت های مفید گوگل مپ رو برای شما دوستان عزیز آموزش بدم…
امیدوارم از این دوره نهایت استفاده و لذت رو ببرید…
هرگونه انتقاد و نظری نسبت به دوره داشتید حتما با من درمیون بذارید تا در آموزش های بعدی اونها رو رفع کنیم…

دانلود APK برنامه:
دانلود برنامه نهایی

خرید کل دوره بصورت یکجا + سورس رایگان:

سورس برنامه:

۳-نمایش نقشه در برنامه

توی این قسمت اولین نمایش نقشه رو توی برنامه خودمون خواهیم داشت و میتونیم کاملا نقشه رو ببینیم…

دانلود قسمت ۳ ـ نمایش نقشه در برنامه

۲- بررسی سرویس گوگل مپ

توی این قسمت بررسی میکنیم که سرویس قابل استفاده هست یا به ارورر برخوردیم و یا کلا سرویس نیست!
و اگه سرویس ما موجود بود قابل استفاده هست برای کار های بعدی…

دانلود قسمت دوم ـ بررسی سرویس گوگل مپ

۱- دریافت api key از گوگل و دادن پرمیشن‌ها:

توی این قسمت درخواست api key میدیم و اونو داخل برنامه میذاریم تا در آینده به مشکلی برنخوریم
درواقع api key واسط برنامه ما و سرویس گوگل هست
و یک سری پرمیشن ها رو که برای ادامه کار نیاز داریم داخل برنامه اضافه میکنیم

دانلود قسمت اول ـ نمایش نقشه در برنامه

۶- رفتن به مختصات خاص بوسیله نام مکان ها

توی این قسمت با استفاده از نام مکان های مختلف مثل “تهران” به اون مکان میریم و این کارو با استفاده از کلاس GeoCoder انجام میدیم که کار های تبدیل رو انجام میده…

۵- رفتن به مختصات خاص

توی این قسمت با استفاده از latitude and longitude هر نقطه از جهان که درواقع همون طول و عرض جغرافیایی هستند میتونیم به اون نقطه ها بریم و زوم خودمون تا اون نقطه رو هم مشخص کنیم

۴- ساختن شی از مپ:

توی این قسمت برای این که بتونیم از مپ استفاده های بیشتری داشته باشیم باید یک شی از اون بسازیم و با استفاده از اون شی کار های مربوطه رو انجام بدیم

۹- دریافت آپدیت و تغییرات مسیر جاری

توی این قسمت تغییرات لوکیشن خودمون دریافت میکنیم
همون طور که میدونید ما همیشه توی یک مکان ثابت نخواهیم بود…

دانلود قسمت ۹ ـ بروزرسانی مسیرجاری

۸- دریافت لوکیشن جاری با سفارشی کردن بیشتر

توی این قسمت یکم کار خودمون رو بهتر میکنیم و سفارشی ترش میکنیم. میتونیم دقیقا طول و عرض و جغرافیایی خودمون رو در اختیار و داشته باشیم…

دانلود قسمت ۸ ـ دریافت مکان فعلی

۷- فعال‌سازی لوکیشن خود:

توی این قسمت خیلی ساده موقعیت مکانی خودمون رو فعال میکنیم…

دانلود قسمت ۷ ـ فعال سازی لوکیشن

۱۲- گرفتن نام کشور محل کلیک شده

توی این قسمت مثل قسمت قبلی روی محل کلیک شده مارکر میذاریم با این تفاوت که title مارکر ها رو نام کشور های کلیک شده میذاریم…
قراره توی این قسمت هم از GeoCoder استفاده میکنیم…

۱۱- بررسی رویداد کلیک روی نقشه:

توی این قسمت رویداد کلیک نقشه رو باهم بررسی میکنیم و کاری میکنیم که هربار روی نقشه کلیک شد یک مارکر روی محل کلیک شده اضافه بشه…

دانلود قسمت ۱۱ ـ کلیک روی نقشه

۱۰- استفاده از مارکر:

توی این قسمت یک مارکر به موقعیت خودمون اضافه میکنیم و یاد میگیریم که چطور اونو حذف کنیم…

۱۳- رسم خطوط بین دو مارکر:

توی این قسمت رسم خط رو یاد میگیریم و یادمیگیریم که چطور میتونیم اونو حذف کنیم و این کار رو با استفاده از دو مارکر انجام میدیم که بین اونها خط رو رسم کنیم

لینک کوتاه شده مطلب: http://www.esfandune.ir/iguSG

درباره Mahdi

ما را دنبال کنید:


آموزش های پیشنهادی سایت (نمایش همه):


۲۰ نظر

  • میثم گفت:

    سلام
    برنامه رو نصب کردم ببینم چجوریه” نصب شد و اجرا هم میشه ” اما چیز خاصی توش نداره و لوکیشن و… نمیاره!

    • Mahdi گفت:

      سلام دوست عزیز
      این آموزش آموزش مقدماتی google map هست

      درباره دریافت لوکیشن هم نسخه اندروید شما چنده؟
      دریافت لوکیشن جز پرمیشن هایی هست که از اندروید ۶ به بعد نیاز هست که کاربر در حین برنامه اجازه دسترسی بده و ما اینو آموزش ندادیم توی این دوره.

  • هدی گفت:

    سلام
    اگه بخواهیم بدون اینکه منو درست کنیم یهو مپ لوکیشن ما رو بصورت زوم شده نشون بده
    باید چی کار کنم؟
    توومتد onMap باید بذارم دستورشو؟

  • علی گفت:

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

    • Mahdi گفت:

      سلام دوست عزیز
      داخل آموزش sha مربوط به نسخه دیباگ رو داخل سایت google قرار میدیم و به همین دلیل وقتی نسخه release رو ایجاد میکنین مپ لود نمیشه
      برای حل شدن این موضوع باید sha مربوط به نسخه release رو داخل سایت گوگل قرار بدید.
      keytool -list -v -keystore /home/Desktop/Learnings/TestApp/keystore.jks -alias test -storepass password -keypass password
      با استفاده از دستورات بالا میتونید sha مربوط به نسحه ریلیز رو دریافت کنید

  • ali گفت:

    مسیریابی اموزش داده شده؟

  • حامد گفت:

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

  • علی گفت:

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

    • Mahdi گفت:

      سلام دوست عزیز من کامل متوجه منظور شما نشدم اما برای محاسبه فاصله می تونید از متد distanceTo استفاده کنید به این صورت که دوتا شی Location بسازید و بهشون latitude و longitude دوتا موقعیت رو بدید و اون موقع میتونید از شی distanceTo استفاده کنید.

  • hamid گفت:

    سلام
    فایل نصبی رو گشی نصب کردم ولی نقشه بارگذاری نمیشه و همش ÷یغام update میده. سطح دسترسی چک کردم مجوز دسترسی داره
    مشکل از چیه مهندس؟؟؟؟؟

    • Mahdi گفت:

      سلام
      احتمالا درخواست آپدیت google play service رو از شما داره که باید اون رو از توی google play بروزرسانی کنیدhttp://www.esfandune.ir/wp-admin/edit-comments.php?p=227339#comments-form

  • maryamazadmaanesh گفت:

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

  • زهرا گفت:

    با سلام
    در قسمت ۶ و دریافت مکان با استفاده از کلاس Geocoder در برنامه مکان رو وارد میکنم ولی بعد از کلیک روی دکمه Go برنامه اجرا نمیشه و خطاش هم اینه :
    java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
    مشکلش چی میتونه باشه ؟ من گام به گام با شما پیش رفتم
    چرا لیستی که داخل Address قرار میگیره تو این کلاس خالیه ؟ ممنون میشم اگه زودتر جواب بدید مربوط به پروژه کارشناسیم هست

  • زهرا گفت:

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

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (ServiceOK()){
    Toast.makeText(getApplicationContext(),”SERVICEOK”,Toast.LENGTH_SHORT).show();
    setContentView(R.layout.map_layout);
    initMap();

    search=(Button)findViewById(R.id.search_btn);
    search.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick (View view) {
    EditText et = (EditText)findViewById(R.id.Edittext1);
    String key = et.getText().toString().trim();
    Geocoder gc = new Geocoder(MainActivity.this);
    try{
    List list = gc.getFromLocationName(key, 1);
    Address address = list.get(0);
    gotolocation(address.getLatitude(),address.getLongitude(), Zoom);

    } catch (Exception e) {

    Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
    }
    }
    });

    }
    else
    setContentView(R.layout.activity_main);
    }

    private boolean ServiceOK(){
    GoogleApiAvailability apiAvailability=GoogleApiAvailability.getInstance();
    int chech=apiAvailability.isGooglePlayServicesAvailable(this);
    if (chech== ConnectionResult.SUCCESS){
    return true;
    }
    else if (apiAvailability.isUserResolvableError(chech)){
    Toast.makeText(getApplicationContext(),”Error”,Toast.LENGTH_SHORT).show();
    }
    else
    Toast.makeText(getApplicationContext(),”NOSERVICE”,Toast.LENGTH_LONG).show();
    return false;

    }

    private void initMap(){
    if (map==null){
    SupportMapFragment mapFragment=(SupportMapFragment)getSupportFragmentManager()
    .findFragmentById(R.id.map_fragment);
    mapFragment.getMapAsync(this);
    }
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
    map=googleMap;
    if (map != null){
    Toast.makeText(getApplicationContext(),”INIT”,Toast.LENGTH_SHORT).show();
    gotolocation(35.698405,51.378647,Zoom);}
    else
    Toast.makeText(getApplicationContext(),”NotINIT”,Toast.LENGTH_LONG).show();
    }

    private void gotolocation(double lat,double lng){
    LatLng latLng=new LatLng(lat,lng);
    CameraUpdate cameraUpdate= CameraUpdateFactory.newLatLng(latLng);
    map.moveCamera(cameraUpdate);
    }
    private void gotolocation(double lat,double lng,float Zoom){
    LatLng latLng=new LatLng(lat,lng);
    CameraUpdate cameraUpdate= CameraUpdateFactory.newLatLngZoom(latLng,Zoom);
    map.moveCamera(cameraUpdate);
    }
    }

نظر خود را بیان کنید

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