Google Android Map v2-Step by Step
29 032013
Google Android Map v2-Step by Step
- Create a new android project with default settings.
- Import “google-play-services_lib”.
- Install google play services.
- Add the google play services library to your project.
- Find your SHA1.
- Open command prompt and go to your jdk/bin folder. Such as: C:\Program Files\Java\jdk1.7.0_02\bin
- find your debug.keystore path by checking windows-->preferences-->android-->build
- Run the following command to get your sha1: keytool -v -list -keystore "<debug.keystore path>" and press “enter” when a password asked.
- Then copy and keep SHA1 for later use. For my case it is (3C:64:03:7B:0E:F7:E5:71:0D:10:9D:62:4C:03:8C:F2:4E:AD:B8:94)
- 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.
- From services, Turn “Google Maps Android API v2” to ON.
- From API Access, create new Android Key.
- 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)
- Copy generated API for later use, for my case it is AIzaSyDciL7-T3BphxGv2q-A77vNrcyJQ_sTrgI
- Create Android Virtual Device(AVD).
- Installing google service packages; gms and vending
- Be sure that emulator started
- Copy attached com.google.android.gms-19032013.apk and com.google.android.vending-19032013.apk files to <bundel root>\sdk\platform-tools
- Open command from and go to <bundel root>\sdk\platform-tools
- then run command adb install com.google.android.gms-19032013.apk
- then run command adb install com.android.vending-19032013.apk
- if it says already exits then run commands
adb uninstall com.android.vendingadb uninstall com.google.android.gms
- Modify AndroidManifest.xml
- Double-click on androidmanifest.xml
- 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"/>
- Create metadata for map api in application
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyDciL7-T3BphxGv2q-A77vNrcyJQ_sTrgI"/>
- 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>
- Double-click on androidmanifest.xml
- 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>
- Modify MainActivity.Java
- Double-click mainactivity.java
- Add imports.
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;
- Add GoogleMap object
private GoogleMap mMap;
- Add the following code to onCreate() à this code is not necessary to run the map but it gives you ideas how to use it.
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")); - Your final mainactivity.java file will lool like as follows:
package info.tekguc.umut.googlemapsmapsandroidv2; 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; } }
- Run the application
- Right-click on your application and select run as àandroid application.
- You wil see a screen as follows:
No comments:
Post a Comment