In this tutorial i will explain step by step about integrating google map with android app

- Create a new android project with default settings.
- Import “google-play-services_lib”.
- Select File-->Import
- Select Android-->Existing Android Code into Workspace
- Browse and select <bundle root>\sdk\extras\google\google_play_services\libproject
- Select “google-play-services_lib” and finish.3) Install google play services.
- Open sdk manager
- Select google play services and install.
4.Add the google play services library to your project.
A.Right-click on your project and select properties.
B.Select the library, and press OK.
5.Find your SHA1.
- Open command prompt and go to your jdk/bin folder. Such as: C:\Program Files\Java\jdk1.7.0_02\bin
- Start-->run, cmd
- cd C:\Program Files\Java\jdk1.7.0_02\bin
- find your debug.keystore path by checking windows-->preferences-->android-->build
C.Run the following command to get your sha1: keytool -v -list -keystore "<debug.keystore path>" and press “enter” when a password asked.
6.Get the key for android apps.
- You need to have a gmail account.
- Create Google APIs project from https://code.google.com/apis/console adress.
C . From services, Turn “Google Maps Android API v2” to ON.
D. From API Access, create new Android Key.
E . Paste SHA1 and your package name <SHA1>;<package name> for example at my case it is (3C:64:03:7B:0E:F7:E5:71:0D:10:9D:62:4C:03:8C:F2:4E:AD:B8:94;info.tekguc.umut.googlemapsmapsandroidv2)
7.Modify AndroidManifest.xml
- Double-click on androidmanifest.xml
B.Add necessary permissions and glEs feature to androidmanifest.xml
<permission android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE" android:protectionLevel="signature"></permission> <uses-permission android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE"/> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-feature android:glEsVersion="0x00020000" android:required="true"/>
C .Create metadata for map api in application
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyDciL7-T3BphxGv2q-A77vNrcyJQ_sTrgI"/>
D. Your final androidmanifest.xml file will lool like as follows:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="info.tekguc.umut.googlemapsmapsandroidv2" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="17" /> <permission android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE" android:protectionLevel="signature"></permission> <uses-permission android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE"/> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-feature android:glEsVersion="0x00020000" android:required="true"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyDciL7-T3BphxGv2q-A77vNrcyJQ_sTrgI"/> <activity android:name="info.tekguc.umut.googlemapsmapsandroidv2.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
8 Modify activity_main.xml
- Double click on activity_main.xml
- Add to map fragment
<fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.MapFragment"/>
- Your final activity_main.xml file will lool like as follows:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.MapFragment"/> </RelativeLayout>
9 Modify MainActivity.Javapackage com.nisdroid; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.MapFragment; 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 { private GoogleMap mMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); final LatLng CIU = new LatLng(35.21843892856462, 33.41662287712097); Marker ciu = mMap.addMarker(new MarkerOptions() .position(CIU).title("My Office")); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }