So before we start developing maps we need to download google play sevices from SDK manger. You can open SDK manager either from Eclipse or from android sdk folder.
Go to Eclipse --> Windows --> Android SDK Manager and check whether you have already downloaded Google Play Services or not under Extras section. If not select play services and install the package.
Importing Google Play Services into your project
. In Eclipse goto File ⇒ Import ⇒ Android ⇒ Existing Android Code Into Workspace
.
1. Click on Browse and select Google Play Services project from your android sdk folder. You can locate play services library project from
android-sdk-windows\extras\google\google_play_services\libproject\google-play-services_lib
2. Importantly while importing check Copy projects into workspace option as shown in the below image.
My debug.keystore is in C:\Users\user\.android\.android\debug.keystore
Copy your SHA Key because you will need it in furthe steps.
New google maps are implemented using MapFragments which is a sub class of Fragments class. Open your main activity layout file activity_main.xml file and add following code. I used RelativeLayout as a parent element. You can remove it and use MapFragment directly.
activity_main.xml
Go to Eclipse --> Windows --> Android SDK Manager and check whether you have already downloaded Google Play Services or not under Extras section. If not select play services and install the package.
. In Eclipse goto File ⇒ Import ⇒ Android ⇒ Existing Android Code Into Workspace
.
1. Click on Browse and select Google Play Services project from your android sdk folder. You can locate play services library project from
android-sdk-windows\extras\google\google_play_services\libproject\google-play-services_lib
2. Importantly while importing check Copy projects into workspace option as shown in the below image.
Getting the Google Maps API key
Same as in maps v1 we need to generate SHA-1 fingerprint using java keytool. Open your cmd and execute the following command to generate SHA-1 fingerprint.
On Windows
keytool -list -v -keystore
"%USERPROFILE%\.android\debug.keystore"
-alias androiddebugkey -storepass android -keypass android
Copy your SHA Key because you will need it in furthe steps.
Now Open Google Api Console
Select Projects on left side and then create project. Give your project name that you have created in you IDE. Dont change anything in project id and click create.
Now click APIs & Auth and select APIs and turn on Google Maps Api v2.
Now select Credentials and click on Create new Key there select Android key and Enter your SHA 1 and your Package Name separated by semicolon ; and click on create.
And note down the API key which required later in our project.
Creating new Project
After completing required configuration, It’s time to start our project.
1. In Eclipse create a new project by going to File ⇒ New ⇒ Android Application Project and fill required details. I kept my project name as GoogleMapsv2 and package name as com.example.googlemapsv2
2. Now we need to use Google Play Services project as a library to use project. So right click on project and select properties. In the properties window on left side select Android. On the right you can see Add button under library section. Click it and select google play services project which we imported previously.
Now Open Your Android Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.googlemapsv2"
android:versionCode="1"
android:versionName="1.0" >
<permission
android:name="com.example.googlemapsv2.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.googlemapsv2.permission.MAPS_RECEIVE" />
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="19" />
<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" />
<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"
>
<activity
android:name="com.example.googlemapsv2.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>
<!-- Google Api Key -->
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="Your Api Key" />
<!-- Dont Forget to mention the below code -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>
</manifest>
activity_main.xml
<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>
Add the following code in your Main Activity java MainActivity.java class
MainActivity.java
package com.example.googlemapsv2
import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.MapFragment;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Window;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
// Google Map
private GoogleMap googleMap;
// GPS Location
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
try {
//Loading map
initilizeMap();
} catch (Exception e) {
e.printStackTrace();
}
}
private void initilizeMap() {
if (googleMap == null) {
googleMap = ((MapFragment) getFragmentManager().findFragmentById(
R.id.map)).getMap();
if (googleMap == null) {
Toast.makeText(getApplicationContext(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT)
.show();
}
}
}
@Override
protected void onResume() {
super.onResume();
initilizeMap();
}
}
Now Run your project in your device because emulator dosent support maps..
If you feel like any difficulties then post your comment..
No comments:
Post a Comment