آموزش گوگل مپ در برنامه نویسی اندروید

4 سال پیش

آموزش گوگل مپ در برنامه نویسی اندروید

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، در مورد آموزش گوگل مپ در برنامه نویسی اندروید (Android google map) صحبت خواهیم کرد.

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

 

 گوگل مپ در برنامه نویسی اندروید – فایل طرح بندی

اکنون باید map fragment را به پرونده طرح xml اضافه کنید. نحو آن در زیر آورده شده است:

<fragment
   android:id="@+id/map"
   android:name="com.google.android.gms.maps.MapFragment"
   android:layout_width="match_parent"
   android:layout_height="match_parent"/>

 

 گوگل مپ در برنامه نویسی اندروید – فایل AndroidManifest

مورد بعدی که باید انجام دهید افزودن برخی از مجوزها به همراه کلید Google Map API در فایل AndroidManifest.XML است. نحو آن در زیر آورده شده است:

<!--Permissions-->

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.providers.gsf.permission.
   READ_GSERVICES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<!--Google MAP API key-->

<meta-data
   android:name="com.google.android.maps.v2.API_KEY"
   android:value="AIzaSyDKymeBXNeiFWY5jRUejv6zItpmr2MVyQ0" />

 

سفارشی کردن نقشه گوگل

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

افزودن نشانگر

می توانید موقعیت مکانی را با قرار دادن تکست بر روی نقشه نشان دهید. این کار را می توان از طریق متد () addMarker انجام داد. نحو آن در زیر آورده شده است:

final LatLng TutorialsPoint = new LatLng(21 , 57);
Marker TP = googleMap.addMarker(new MarkerOptions()
   .position(TutorialsPoint).title("TutorialsPoint"));

 

تغییر نوع نقشه

همچنین می توانید نوع MAP را تغییر دهید. چهار نوع نقشه مختلف وجود دارد و هر یک نمای متفاوتی از نقشه را ارائه می دهند. این نوع نرمال، ترکیبی، ماهواره ای و زمینی هستند. می توانید از آنها به صورت زیر استفاده کنید:

googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
googleMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);

 

فعال یا غیرفعال کردن بزرگنمایی نقشه

همچنین می توانید با فراخوانی متد (setZoomControlsEnabled(booleanحرکات بزرگنمایی را در نقشه فعال یا غیرفعال کنید. نحو آن در زیر آورده شده است:

googleMap.getUiSettings().setZoomGesturesEnabled(true);

 

به غیر از این سفارشی سازی، متد های دیگری نیز در کلاس GoogleMap وجود دارد که به شما کمک می کند نقشه را بیشتر شخصی سازی کنید. آنها در زیر ذکر شده اند:

  • (addCircle(CircleOptions options

این متد یک دایره به نقشه اضافه می کند

  • (addPolygon(PolygonOptions options

این متد یک چند ضلعی را به نقشه اضافه می کند

  • (addTileOverlay(TileOverlayOptions options

این متد پوشش کاشی را به نقشه اضافه می کند

  • (animateCamera(CameraUpdate update

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

  • ()clear

این متد همه چیز را از روی نقشه حذف می کند.

  •  ()getMyLocation

این متد مکان کاربر در حال حاضر نمایش داده شده را برمی گرداند.

  • (moveCamera(CameraUpdate update

این متد دوربین را مطابق دستورالعمل های تعریف شده در به روزرسانی،  مجدداً تغییر مکان می دهد

  •  (setTrafficEnabled(boolean enabled

این متد لایه ترافیک را روشن یا خاموش می کند.

  • (snapshot(GoogleMap.SnapshotReadyCallback callback

این متد از نقشه عکس فوری می گیرد

  • ()stopAnimation

در صورت وجود انیمیشن دوربین، این متد آن را متوقف می کند

 

مثال

در اینجا مثالی وجود دارد که استفاده از کلاس GoogleMap را نشان می دهد. که برنامه M را ایجاد می کند که به شما امکان می دهد از طریق نقشه حرکت کنید.

برای آزمایش این مثال، می توانید آن را روی دستگاه واقعی یا شبیه ساز اجرا کنید.

همانطور که در زیر نشان داده شده، یک پروژه با فعالیت نقشه های گوگل ایجاد کنید:

این صفحه زیر را باز می کند و آدرس کنسول API Key را مانند تصویر زیر کپی می کند

این را کپی کرده و در مرورگر خود پیست کنید. این صفحه زیر را نشان می دهد:

بر روی continueکلیک کنید و بر روی Create API Key کلیک کنید سپس صفحه زیر نمایش داده می شود:

در اینجا محتوای activity_main.xml است.

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:map="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/map"
   android:name="com.google.android.gms.maps.SupportMapFragment"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context="com.example.tutorialspoint7.myapplication.MapsActivity" />

در اینجا محتوای MapActivity.java است.

package com.example.tutorialspoint7.myapplication;

import android.support.v4.app.FragmentActivity;
import android.os.Bundle;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

   private GoogleMap mMap;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_maps);
      // Obtain the SupportMapFragment and get notified when the map is ready to be used.
      SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
         .findFragmentById(R.id.map);
      mapFragment.getMapAsync(this);
   }
   
   /**
      * Manipulates the map once available.
      * This callback is triggered when the map is ready to be used.
      * This is where we can add markers or lines, add listeners or move the camera.
      * In this case, we just add a marker near Sydney, Australia.
      * If Google Play services is not installed on the device. 
      * This method will only be triggered once the user has installed 
         Google Play services and returned to the app.
   */
  
   @Override
   public void onMapReady(GoogleMap googleMap) {
      mMap = googleMap;
      // Add a marker in Sydney and move the camera
      LatLng TutorialsPoint = new LatLng(21, 57);
      mMap.addMarker(new 
         MarkerOptions().position(TutorialsPoint).title("Tutorialspoint.com"));
      mMap.moveCamera(CameraUpdateFactory.newLatLng(TutorialsPoint));
   }
}

در زیر محتوای فایل AndroidManifest.xml آمده است.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.tutorialspoint7.myapplication">

   <!--
      The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
      Google Maps Android API v2, but you must specify either coarse or fine
      location permissions for the 'MyLocation' functionality. 
   -->
    
   <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
   <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
   <uses-permission android:name="android.permission.INTERNET" />
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:supportsRtl="true"
      android:theme="@style/AppTheme">

      <!--
         The API key for Google Maps-based APIs is defined as a string resource.
         (See the file "res/values/google_maps_api.xml").
         Note that the API key is linked to the encryption key used to sign the APK.
         You need a different API key for each encryption key, including the release key 
         that is used to sign the APK for publishing.
         You can define the keys for the debug and 
            release targets in src/debug/ and src/release/. 
      -->
      
      <meta-data
         android:name="com.google.android.geo.API_KEY"
         android:value="AIzaSyAXhBdyKxUo_cb-EkSgWJQTdqR0QjLcqes" />

      <activity
         android:name=".MapsActivity"
         android:label="@string/title_activity_maps">
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
   </application>

</manifest>

خروجی باید به این شکل باشد:

 

منبع.

لیست جلسات قبل آموزش برنامه نویسی اندروید

  1. نگاهی کلی به برنامه نویسی اندروید
  2. تنظیمات محیط  در برنامه نویسی اندروید
  3. معماری برنامه نویسی اندروید
  4. اجزای برنامه در برنامه نویسی اندروید
  5. Hello World در برنامه نویسی اندروید
  6. سازماندهی و دسترسی به منابع در برنامه نویسی اندروید
  7. فعالیت در برنامه نویسی اندروید
  8. سرویس در برنامه نویسی اندروید
  9. گیرنده های پخش در برنامه نویسی اندروید
  10. ارائه دهنده محتوا در برنامه نویسی اندروید
  11. قطعات در برنامه نویسی اندروید
  12. Intent و فیلتر در برنامه نویسی اندروید
  13. طرح بندی رابط کاربری در برنامه نویسی اندروید
  14. کنترل های رابط کاربری در برنامه نویسی اندروید
  15. مدیریت رویدادها در برنامه نویسی اندروید
  16. استایل و تم ها در برنامه نویسی اندروید
  17. اجزای سفارشی در برنامه نویسی اندروید
  18. کشیدن و رها کردن در برنامه نویسی اندروید
  19. نوتیفیکیشن ها در برنامه نویسی اندروید
  20. سرویس های مبتنی بر مکان در برنامه نویسی اندروید
  21. ارسال ایمیل در برنامه نویسی اندروید
  22. ارسال پیامک در برنامه نویسی اندروید
  23. تماس های تلفنی در برنامه نویسی اندروید
  24. انتشار برنامه اندروید
  25. آموزش Alert Dialog در برنامه نویسی اندروید
  26. انیمیشن در برنامه نویسی اندروید
  27. ضبط صدا در برنامه نویسی اندروید
  28. مدیریت صدا در برنامه نویسی اندروید
  29. آموزش Auto Complete در برنامه نویسی اندروید
  30. بهترین شیوه ها در برنامه نویسی اندروید
  31. بلوتوث در برنامه نویسی اندروید
  32. استفاده از دوربین در برنامه نویسی اندروید
  33. کلیپ بورد در برنامه نویسی اندروید
  34. فونت سفارشی در برنامه نویسی اندروید
  35. پشتیبان گیری از داده ها در برنامه نویسی اندروید
  36.  ابزارهای توسعه دهنده در برنامه نویسی اندروید
  37. آموزش شبیه ساز در برنامه نویسی اندروید
  38. اتصال به فیس بوک در برنامه نویسی اندروید
  39. حرکات لمسی در برنامه نویسی اندروید

 

 

0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه