4- ایجاد پروژه جدید
پس از انجام تنظیمات مورد نیاز، زمان برای شروع پروژه فرا رسیده است.
1- در Eclipse با رفتن به File ⇒ New ⇒ Android Application Project و پرکردن اطلاعات موردنیاز یک پروژه جدید ایجاد کنید. من نام پروژه را Google Maps V2 و نام بسته را info.androidhive.info گذاشته ام.
2- اکنون باید Google Play Services را به پروژه خود اضافه کنیم. برروی پروژه راست-کلیک کرده و گزینه properties را انتخاب کنید. در صفحه ظاهر شده در سمت چپ برروی Android کلیک کرده و در سمت راست دکمه Add را بزنید. کتابخانه google play services را انتخاب کنید.
3- کلید تولیدشده در مراحل قبل را در فایل مانیفست وارد کنید. فایل AndroidManifest.xml را باز کرده و کد زیر را قبل از تگ نهایی وارد کنید. توجه کنید که مقدار android:value را با کلیدی که از کنسول گوگل گرفتید جایگزین کنید.
1 2 3 4 |
<!-- Goolge Maps API Key --> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyBZMlkOv4sj-M5JO9p6wksdax4TEjDVLgo" /> |
4- نقشه های گوگل به مجوزهای (permissions) زیر نیاز دارد:
-
ACCESS_NETWORK_STATE: برای چک کردن وضعیت شبکه که آیا داده ای را می توان از آن دریافت کرد یا نه
-
INTERNET: برای بررسی وضعیت اتصال به اینترنت
-
WRITE_EXTERNAL_STORAGE : برای نوشتن درمحل ذخیره سازی خارجی
-
ACCESS_COARSE_LOCATION : برای تعیین محل کاربر با استفاده از WiFi و شبکه تلفن همراه
-
ACCESS_FINE_LOCATION : برای تعیین محل کاربر با استفاده از GPS
-
OpenGL ES V2 : مورد نیاز برای ورژن دوم نقشه های گوگل
در نهایت، فایل AndroidManifest.xml من –پس از افزودن این مجوزها- شبیه زیر خواهد بود:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="info.androidhive.googlemapsv2" android:versionCode="1" android:versionName="1.0" > <permission android:name="info.androidhive.googlemapsv2.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-permission android:name="info.androidhive.googlemapsv2.permission.MAPS_RECEIVE" /> <uses-sdk android:minSdkVersion="12" android:targetSdkVersion="17" /> <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" /> <!-- Required to show current location --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- Required OpenGL ES 2.0. for Maps V2 --> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name"> <activity android:name="info.androidhive.googlemapsv2.MainActivity" android:label="@string/app_name" android:theme="@style/AppBaseTheme"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- Goolge API Key --> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyBZMlkOv4sj-M5JO9p6wksdax4TEjDVLgo" /> </application> </manifest> |
5- نقشه های جدید گوگل با استفاده از کلاس MapFragments پیاده سازی شده اند که زیرکلاسی از کلاس Fragments است. فایل activity_main.xml خود را باز کنید و کد زیر را در آن وارد کنید.
من از RelativeLayout به عنوان یک المان والد استفاده کرده ام.اما شما می توانید آن را حذف کرده و از المان MapFragment به طور مستقیم استفاده کنید.
1 2 3 4 5 6 7 8 9 10 11 12 |
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <fragment android:id="@+id/map" android:name="com.google.android.gms.maps.MapFragment" android:layout_width="match_parent" android:layout_height="match_parent"/> </RelativeLayout> |
6- کد زیر را در کلاس فعالیت اصلی خود در جاوا (MainActivity.java) اضافه کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
public class MainActivity extends Activity { // Google Map private GoogleMap googleMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); try { // Loading map initilizeMap(); } catch (Exception e) { e.printStackTrace(); } } /** * function to load map. If map is not created it will create it for you * */ private void initilizeMap() { if (googleMap == null) { googleMap = ((MapFragment) getFragmentManager().findFragmentById( R.id.map)).getMap(); // check if map is created successfully or not if (googleMap == null) { Toast.makeText(getApplicationContext(), "Sorry! unable to create maps", Toast.LENGTH_SHORT) .show(); } } } @Override protected void onResume() { super.onResume(); initilizeMap(); } } |
پروژه را اجرا کنید و نقشه ای را می بینید که بر روی دستگاه شما نمایش داده می شود.