Hello Friends,
If you have developed any app that contains Google Maps v1, It’s time to upgrade it to Google Maps V2 as google maps version 1 deprecated officially on December 3rd, 2012 and it won’t work anymore. This article aims to give knowledge about how to implements newer Google Maps into your applications. If you have already worked with V1, implementing V2 is very easy.
Follow steps for creating Api key as well Google play service here.
activity_main.xml
MainActivity.java
Google API :
Google provide many API for perform operation on GPS.
1. Display Pin on Google map Using GOOGLE API either address OR lat&lng
CASE 1: http://maps.google.co.in/maps?q=address here
CASE 2: http://maps.google.com/maps?q=loc:"lat,lng"
2. Reverse GEOCODING (Get data using Address OR latlng)
CASE 1: http://maps.google.com/maps/api/geocode/json?address=ahmedabad,gujrat
CASE 2: https://maps.googleapis.com/maps/api/geocode/json?latlng=23.1378156,72.7053737
3. Route between location
http://maps.google.com/maps?&saddr=slat,slon&daddr=dlat,dlon"
Here, saddr -> source address daddr -> destination address slat -> source latitude
slon -> source longitude dlat -> destination latitude dlon -> destination longitude
Here is the more Reference to use google map :
Display current location on Google Map:
http://wptrafficanalyzer.in/blog/showing-current-location-in-google-maps-with-gps-and-locationmanager-in-android/
http://www.androidhive.info/2012/01/android-working-with-google-maps/
http://android-er.blogspot.in/2009/11/display-marker-on-mapview-using.html
http://android-codes-examples.blogspot.in/2011/04/google-map-example-in-android-with-info.html
http://android-er.blogspot.in/2012/06/add-mylocationoverlay-on-openstreetmap.html
http://android-er.blogspot.in/2012/05/create-multi-marker-openstreetmap-for.html
Route Map in Android:
Uri uri = Uri.parse("http://maps.google.com/maps?&saddr=slat,slon&daddr=dlat,dlon");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
Google MapV2 Reference link:
http://ramsandroid4all.blogspot.in/2013/03/google-maps-android-api-v2.html
http://patesush.blogspot.in/2012/12/how-to-create-app-for-google-map-v2-in.html
http://www.solutionanalysts.com/blog/android-custom-marker-icon-google-map-android-api-v2
http://wptrafficanalyzer.in/blog/custom-marker-icon-for-google-maps-android-api-v2/
http://wptrafficanalyzer.in/blog/gps-and-google-map-in-android-applications-series/
Google Map Operation:
http://androidmapv2.blogspot.in/
If you have developed any app that contains Google Maps v1, It’s time to upgrade it to Google Maps V2 as google maps version 1 deprecated officially on December 3rd, 2012 and it won’t work anymore. This article aims to give knowledge about how to implements newer Google Maps into your applications. If you have already worked with V1, implementing V2 is very easy.
Follow steps for creating Api key as well Google play service here.
activity_main.xml
<?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>
MainActivity.java
import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.Toast; 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.CameraPosition; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; 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(); // Changing map type googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); // googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); // googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); // googleMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN); // googleMap.setMapType(GoogleMap.MAP_TYPE_NONE); // Showing / hiding your current location googleMap.setMyLocationEnabled(true); // Enable / Disable zooming controls googleMap.getUiSettings().setZoomControlsEnabled(false); // Enable / Disable my location button googleMap.getUiSettings().setMyLocationButtonEnabled(true); // Enable / Disable Compass icon googleMap.getUiSettings().setCompassEnabled(true); // Enable / Disable Rotate gesture googleMap.getUiSettings().setRotateGesturesEnabled(true); // Enable / Disable zooming functionality googleMap.getUiSettings().setZoomGesturesEnabled(true); double latitude = 17.385044; double longitude = 78.486671; // lets place some 10 random markers for (int i = 0; i < 10; i++) { // random latitude and logitude double[] randomLocation = createRandLocation(latitude, longitude); // Adding a marker MarkerOptions marker = new MarkerOptions().position( new LatLng(randomLocation[0], randomLocation[1])) .title("Hello Maps " + i); Log.e("Random", "> " + randomLocation[0] + ", " + randomLocation[1]); // changing marker color if (i == 0) marker.icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_AZURE)); if (i == 1) marker.icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_BLUE)); if (i == 2) marker.icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_CYAN)); if (i == 3) marker.icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_GREEN)); if (i == 4) marker.icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA)); if (i == 5) marker.icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)); if (i == 6) marker.icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_RED)); if (i == 7) marker.icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_ROSE)); if (i == 8) marker.icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_VIOLET)); if (i == 9) marker.icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_YELLOW)); googleMap.addMarker(marker); // Move the camera to last position with a zoom level if (i == 9) { CameraPosition cameraPosition = new CameraPosition.Builder() .target(new LatLng(randomLocation[0], randomLocation[1])).zoom(15).build(); googleMap.animateCamera(CameraUpdateFactory .newCameraPosition(cameraPosition)); } } } catch (Exception e) { e.printStackTrace(); } } @Override protected void onResume() { super.onResume(); initilizeMap(); } /** * 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(); } } } /* * creating random postion around a location for testing purpose only */ private double[] createRandLocation(double latitude, double longitude) { return new double[] { latitude + ((Math.random() - 0.5) / 500), longitude + ((Math.random() - 0.5) / 500), 150 + ((Math.random() - 0.5) * 10) }; } }
AndroidManifest.xml:
<?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="7"
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" />
<!-- Requires OpenGL ES version 2 -->
<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="API Key" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>
</manifest>
Google API :
Google provide many API for perform operation on GPS.
1. Display Pin on Google map Using GOOGLE API either address OR lat&lng
CASE 1: http://maps.google.co.in/maps?q=address here
CASE 2: http://maps.google.com/maps?q=loc:"lat,lng"
2. Reverse GEOCODING (Get data using Address OR latlng)
CASE 1: http://maps.google.com/maps/api/geocode/json?address=ahmedabad,gujrat
CASE 2: https://maps.googleapis.com/maps/api/geocode/json?latlng=23.1378156,72.7053737
3. Route between location
http://maps.google.com/maps?&saddr=slat,slon&daddr=dlat,dlon"
Here, saddr -> source address daddr -> destination address slat -> source latitude
slon -> source longitude dlat -> destination latitude dlon -> destination longitude
Here is the more Reference to use google map :
Display current location on Google Map:
http://wptrafficanalyzer.in/blog/showing-current-location-in-google-maps-with-gps-and-locationmanager-in-android/
http://www.androidhive.info/2012/01/android-working-with-google-maps/
http://android-er.blogspot.in/2009/11/display-marker-on-mapview-using.html
http://android-codes-examples.blogspot.in/2011/04/google-map-example-in-android-with-info.html
http://android-er.blogspot.in/2012/06/add-mylocationoverlay-on-openstreetmap.html
http://android-er.blogspot.in/2012/05/create-multi-marker-openstreetmap-for.html
Route Map in Android:
Uri uri = Uri.parse("http://maps.google.com/maps?&saddr=slat,slon&daddr=dlat,dlon");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
Google MapV2 Reference link:
http://ramsandroid4all.blogspot.in/2013/03/google-maps-android-api-v2.html
http://patesush.blogspot.in/2012/12/how-to-create-app-for-google-map-v2-in.html
http://www.solutionanalysts.com/blog/android-custom-marker-icon-google-map-android-api-v2
http://wptrafficanalyzer.in/blog/custom-marker-icon-for-google-maps-android-api-v2/
http://wptrafficanalyzer.in/blog/gps-and-google-map-in-android-applications-series/
Google Map Operation:
http://androidmapv2.blogspot.in/
I
will be happy if you will provide your feedback or follow this blog. Any suggestion
and help will be appreciated.
Thank
you :)
excellent
ReplyDeleteThank you.
Delete