Sunday, 1 July 2012

GET THE CURRENT GPS LOCATION AND SHOW IT IN THE GOOGLE MAPS IN ANDROID WITH SOURCE CODE

GET THE CURRENT GPS LOCATION AND SHOW IT IN THE GOOGLE  MAPS IN ANDROID WITH SOURCE CODE



      In this example the users current position is taken by using the Gps or   here the Gps value is set in the emulator .in emulator take DDMS and select the emulator control and set the latitude and the longitude value.before run your application send this value to emulator.the sample program is given below,













GpspostionActivity.java                                                                



package a.b;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.MapView.LayoutParams;

import android.app.Activity;

import android.content.Context;

import android.location.Location;

import android.location.LocationListener;

import android.location.LocationManager;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;
import android.widget.LinearLayout;

import android.widget.Toast;


public class GpspostionActivity extends MapActivity  {
MapView mapView; 
   MapController mc;
   GeoPoint p;

     

    private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 1; // in Meters

    private static final long MINIMUM_TIME_BETWEEN_UPDATES = 1000; // in Milliseconds

     

    protected LocationManager locationManager;

     

    protected Button retrieveLocationButton;

     

    @Override

    public void onCreate(Bundle savedInstanceState) {

         

       super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        mapView = (MapView) findViewById(R.id.mapView);
        LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom);  
        View zoomView = mapView.getZoomControls(); 
        zoomLayout.addView(zoomView, 
            new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, 
                LayoutParams.WRAP_CONTENT)); 
        mapView.displayZoomControls(true);
        mc = mapView.getController();
        String coordinates[] = {"8.487495", "76.948623"};
        double lat = Double.parseDouble(coordinates[0]);
        double lng = Double.parseDouble(coordinates[1]);
        p = new GeoPoint(
            (int) (lat * 1E6), 
            (int) (lng * 1E6));
        mc.animateTo(p);
        mc.setZoom(17); 
        mapView.invalidate();


        retrieveLocationButton = (Button) findViewById(R.id.retrieve_location_button);

         

        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

         

        locationManager.requestLocationUpdates(

                LocationManager.GPS_PROVIDER,

                MINIMUM_TIME_BETWEEN_UPDATES,

                MINIMUM_DISTANCE_CHANGE_FOR_UPDATES,

                new MyLocationListener()

        );

         

    retrieveLocationButton.setOnClickListener(new OnClickListener() {

            @Override

            public void onClick(View v) {

                showCurrentLocation();

            }

    });       

         

    }   


    protected void showCurrentLocation() {


        Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);


        if (location != null) {

            String message = String.format(

                    "Current Location \n Longitude: %1$s \n Latitude: %2$s",

                    location.getLongitude(), location.getLatitude()

            );

            Toast.makeText(GpspostionActivity.this, message,

                    Toast.LENGTH_LONG).show();

        }


    }  


    private class MyLocationListener implements LocationListener {


        public void onLocationChanged(Location location) {

            String message = String.format(

                    "New Location \n Longitude: %1$s \n Latitude: %2$s",

                    location.getLongitude(), location.getLatitude()

            );

            Toast.makeText(GpspostionActivity.this, message, Toast.LENGTH_LONG).show();

        }


        public void onStatusChanged(String s, int i, Bundle b) {

            Toast.makeText(GpspostionActivity.this, "Provider status changed",

                    Toast.LENGTH_LONG).show();

        }


        public void onProviderDisabled(String s) {

            Toast.makeText(GpspostionActivity.this,

                    "Provider disabled by the user. GPS turned off",

                    Toast.LENGTH_LONG).show();

        }


        public void onProviderEnabled(String s) {

            Toast.makeText(GpspostionActivity.this,

                    "Provider enabled by the user. GPS turned on",

                    Toast.LENGTH_LONG).show();

        }


    }



@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}

     

}

   main.xml




<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >
<Button
android:id="@+id/retrieve_location_button"
android:text="Retrieve Location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<com.google.android.maps.MapView 
        android:id="@+id/mapView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:enabled="true"
        android:clickable="true"
        android:apiKey="0vNjDM-9Hpz8UM7pUWYJLvFptBpUpOqvQnV0S_g"
        />
  <LinearLayout android:id="@+id/zoom" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true" 
        android:layout_centerHorizontal="true" />
 
</LinearLayout>

  


How to set gps value in eclipse




DDMS-- emulator control --set value--send--then run your application






output is given below

















  
Download Android Codes From SkyBlueAndroid

No comments:

Post a Comment