مشخصات مقاله
-
5955
-
0.0
-
11998
-
0
-
0
آموزش بکاربری نقشه های گوگل در اندروید
اندروید و Google Maps
در این مبحث نحوه ی استفاده از رابط برنامه سازی کاربردی ویرایش 2 Google Maps در برنامه ی کاربردی اندروید آموزش داده می شود .
فهرست محتوا
1. Google Maps
- استفاده از کلاس MapsView جهت نمایش کامپوننت نقشه
- آموزش کلاس MapFragment
- ایجاد نشانگر بر روی نقشه به وسیله ی کلاس Marker
- اصلاح و تنظیم سفارشی نمای گوگل (GoogleView)
- شبیه ساز اندروید و Google Maps
2. آموزش نصب Google Play services
- دانلود Google Play services
- ایجاد پروژه ویژه ی کتابخانه ی Google Play Service
3. آموزش دریافت کلید (key)Google Map
- Google console
- ایجاد SHA-1 برای کلید امضاء (signature key)
- ثبت در Google API Console
- ساختن کلید برای برنامه ی کابردی
4. آموزش Google Maps
- مقصود اصلی تمرین
- نصب Google Play Services
- دریافت کلید API ویژه ی Google Maps
- ایجاد پروژه
- افزودن مجوز به پروژه
- تنظیم فایل طرح بندی / layout
- Activity
- مرحله ی تست و اجرا
Google Maps
استفاده از کلاس MapsView جهت نمایش کامپوننت نقشه
شرکت گوگل ازطریق فروشگاه مجازی خود کتابخانه ای به منظور بهره گیری از Google Maps در برنامه ی کاربردی مورد نظر ارائه می دهد . این مقاله ی آموزشی از نسخه ی 2 Google Maps Android API بهره می گیرد که در مقایسه با ویرایش قبلی قابلیت های جدیدی به آن اضافه شده است .
کتابخانه ی مربوطه کلاس های com.google.android.gms.maps.MapFragment و MapView را ویژه ی نمایش مولفه های نقشه ی مورد نظر در اختیار برنامه نویس قرار می دهد .
جهت استفاده از Google Maps لازم است اطلاعاتی اضافه بر سازمان به فایل AndroidManifest.xml خود اضافه کنید .
آموزش کلاس MapFragment
کلاس MapFragment کلاس Fragment را به ارث می برد و مدیریت چرخه ی حیات (life-cycle management) و سرویس های لازمه برای نمایش ابزارک GoogleMap را در اختیار برنامه نویس قرار می دهد . GoogleMap کلاسی است که نقشه را نمایش می دهد . MapFragment با استفاده از متد getMap () قادر است به این کلاس دستیابی پیدا کند.
کلاس LatLing را می توان به منظور تعامل (interaction) با کلاس GoogleView بکار برد .
ایجاد نشانگر بر روی نقشه به وسیله ی کلاس Marker
می توان با بهره گیری از کلاس Marker روی نقشه ی دلخواه نشانگر (marker) را ایجاد کرد . این کلاس قابلیت تنظیم سفارشی بالایی دارد به این معنا که می توان آن را مطابق با نیاز خود تا حد قابل توجهی دستکاری کرد .
کد زیر مثالی در این زمینه عرضه می کند :
public class MainActivity extends Activity {
static final LatLng HAMBURG = new LatLng(53.558, 9.927);
static final LatLng KIEL = new LatLng(53.551, 9.993);
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
if (map!=null){
Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
.title("Hamburg"));
Marker kiel = map.addMarker(new MarkerOptions()
.position(KIEL)
.title("Kiel")
.snippet("Kiel is cool")
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.ic_launcher)));
}
}
روی GoogleMap می توان یک گوش فراخوان / listener برای نشانگرهای (marker) موجود در نقشه تخصیص داد (ثبت کرد). این کار از طریق فراخوانی تابع setOnMarkerClickListener(OnMarkerClickListener) انجام می پذیرد. کلاس OnMarkerClickListener متد onMarkerClicked(Marker) را تعریف می کند که تنها زمانی صدا زده می شود که روی نشانگری معینی کلیک شود .
شبیه ساز اندروید و Google Maps
توجه داشته باشید یک رابط برنامه سازی کابردی گوگل (Google API) مبتنی بر شبیه ساز خلق کنید . از این شبیه ساز همچنین می توان به منظور تست Google map و دیگر مجتمع سازی های Google Play Service استفاده کنید .
آموزش نصب Google Play services
دانلود Google Play services
Android SDK Manager را باز کرده و Extras → Google Play services را نصب کنید.

ایجاد پروژه ویژه ی کتابخانه ی Google Play Service
Android SDK manager فایل مورد نظر را در فایل sdk/extras/google/google_play_services/libproject/google-play-services_lib دانلود می کند.
کتابخانه ی مربوطه را از مسیر نام برده به محیط Eclipse وارد کنید . این کار را باید از طریقFile → Import → Android → Existing Android Code into Workspace ورودی فهرست گزینه انجام دهید .
برای استفاده از این کتابخانه باید وابستگی به کتابخانه (library dependency) را در پروژه ی اندروید خود ایجاد کنید .
آموزش دریافت کلید (key)Google Map
Google console
به منظور استفاده از Google Maps باید کلید رابط برنامه سازی کاربردی (API key) معتبر Google Maps استفاده کنید . کلید رایگان می باشد, شما می توانید آن را با هر یک از اپلیکیشن های اندروید خود که رابط برنامه سازی Map را فرا می خواند بکار ببرید, همچنین هر تعداد کاربر که بخواهند می توانند آن را مورد استفاده ی خود قرار دهند .
می توان به این کلید از طریق https://code.google.com/apis/console دسترسی پیدا کرد . لازم است کلید امضاء (signature key) و اسم پکیج اپلیکیشن مربوطه را عرضه کنید .
این بر اساس کلیدی است که برنامه ی خود را با آن حین آماده سازی و گسترش در Eclipse امضا می کنید . طی پروسه ی آماده سازی و گسترش برنامه با Eclipse, Eclipse به صورت خودکار یک debug key )کلید اشکال زدایی( ساخته و بکار می گیرد .
ایجاد SHA-1 برای کلید امضاء (signature key)
کلید اشکال زدایی (debug key) ویژه ی امضا کردن برنامه در فایل userhome/.android/debug.keystore موجود و قابل دسترسی می باشد . جهت ایجاد SHA-1 مختص debug keystore خود, از فرمان keytool مشتق از نصب ابزار توسعه و برنامه سازی جاوا (JDK installation) که به فایل debug.keystore ارجاع می دهد استفاده کنید .
keytool -list -v -alias androiddebugkey \ -keystoredebug.keystore \ -storepass android -keypass android
از خروجی SHA-1 یک کپی بگیرید زیرا که در آینده به آن نیاز داریم .
ثبت در Google API Console
برای اینکه بتوان از Google Maps در برنامه های اندروید خود استفاده کرد, ابتدا باید در Google APIs Console رجیستر کنید. دسترسی به این کنسول از طریق لینک https://code.google.com/apis/console/ صورت می پذیرد . پس از ورود به این لینک ورودی یا مدخل Services را انتخاب کنید .
اکنون the Google Maps Android API v2 را فعال کنید .
ساختن کلید برای برنامه ی کاربردی
سپس باید برنامه ی خود را از طریق پکیج آن در این کنسول به همراه اثرانگشت SHA-1 کلید امضای خود ثبت کرد . برای این منظور مدخل مورد نظر را انتخاب کرده, سپس روی گزینه یAPI Access کلیک می کنید . پس از انجام تمام دستورات فوق ورودی Create New Android Key را انتخاب کنید .
اثر انگشت SHA-1 و پکیج برنامه ی کاربردی خود را که با یک نقطه ویرگول از هم جدا شده باشند در این بخش وارد کنید . به عنوان مثال می توانید از پکیج com.vogella.android.locationapi.maps استفاده کنید .
آموزش Google Maps
مقصود اصلی تمرین
در این تمرین یک اپلیکیشن اندروید ایجاد می کنید که با استفاده از fragment یک GoogleMap نشان می دهد .
نصب Google Play Services
Google Play Service را دانلود کرده, سپس آن را نصب کنید.
دریافت کلید API ویژه ی Google Maps
کلید رابط برنامه سازی کاربردی را همان طور که پیشتر توضیح دادیم ویژه ی Google maps دریافت کنید.
ایجاد پروژه
یک پروژه ی جدید اندروید به نام com.vogella.android.locationapi.maps ایجاد کرده و activity آن را پس از ساخت ShowMapActivity نام گذاری کنید .
افزودن مجوز به پروژه
فایل مانیفست را با افزودن مجوزهای مورد نیاز برای برنامه ی مربوطه به آن اصلاح کنید .
حال یک کلید رابط برنامه سازی کاربردی (API key) معتبر ویژه ی اپلیکیشن مورد نظر اختیار کرده, سپس این کلید را در فایل AndroidManifest.xml وارد کنید .
تنظیم فایل طرح بندی (layout file)
در این مثال از MapFragment استفاده می کنیم . فایل طرح بندی خود را به کد زیر تغییر دهید .
Activity
Activity خود را به ترتیب زیر اصلاح کنید.
package com.vogella.android.locationapi.maps;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
public class MainActivity extends Activity {
static final LatLng HAMBURG = new LatLng(53.558, 9.927);
static final LatLng KIEL = new LatLng(53.551, 9.993);
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
.title("Hamburg"));
Marker kiel = map.addMarker(new MarkerOptions()
.position(KIEL)
.title("Kiel")
.snippet("Kiel is cool")
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.ic_launcher)));
// Move the camera instantly to hamburg with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15));
// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
مرحله ی تست و اجرا
برنامه ی کاربردی خود را تست و اجرا کنید . اکنون شما باید بتوانید روی نقشه بزرگنمایی یا کوچکنمایی انجام داده و مختصات جغرافیایی جدید را از طریق شبیه ساز به activity خود ارسال کنید .