title: GPS - Getting the distance,time while running and walking
body: <p>i have a situation where i need to use GPS technique.</p>
  
  <p>i need to find the distance between two points when the person is walking.</p>
  
  <p>When the person starts walking he will click on <code>Start button</code> and when he stops he clicks on <code>stop button</code></p>
  
  <p>after this it should show him </p>
  
  <p>1.time taken 
  2.Distance travelled in Kms.
  3.from where to where(places name) eg: a to b</p>
  
  <p>Do i need to have google maps for this?</p>
  
  <p>I saw the code here <a href="http://www.firstdroid.com/2010/04/29/android-development-using-gps-to-get-current-location-2/" rel="nofollow">link</a> to get the current location which gives me latitude longitude.</p>
  
  <p>please help how to go with this</p>
  
  <p>**</p>
  
  <h2>Edited:</h2>
  
  <p>**</p>
  
  <p>This is the code i am using</p>
  
  <pre><code>private EditText editTextShowLocation;
      private Button buttonGetLocation;
      private ProgressBar progress;
  
      private LocationManager locManager;
      private LocationListener locListener = new MyLocationListener();
  
      private boolean gps_enabled = false;
      private boolean network_enabled = false;
  
      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
          editTextShowLocation = (EditText) findViewById(R.id.editTextShowLocation);
  
          progress = (ProgressBar) findViewById(R.id.progressBar1);
          progress.setVisibility(View.GONE);
  
          buttonGetLocation = (Button) findViewById(R.id.buttonGetLocation);
          buttonGetLocation.setOnClickListener(this);
  
          locManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
      }
  
      @Override
      public void onClick(View v) {
          progress.setVisibility(View.VISIBLE);
          // exceptions will be thrown if provider is not permitted.
          try {
              gps_enabled = locManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
          } catch (Exception ex) {
          }
          try {
              network_enabled = locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
          } catch (Exception ex) {
          }
  
          // don't start listeners if no provider is enabled
          if (!gps_enabled &amp;&amp; !network_enabled) {
              AlertDialog.Builder builder = new Builder(this);
              builder.setTitle("Attention!");
              builder.setMessage("Sorry, location is not determined. Please enable location providers");
              builder.setPositiveButton("OK", this);
              builder.setNeutralButton("Cancel", this);
              builder.create().show();
              progress.setVisibility(View.GONE);
          }
  
          if (gps_enabled) {
              locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener);
          }
          if (network_enabled) {
              locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locListener);
          }
      }
  
      class MyLocationListener implements LocationListener {
          @Override
          public void onLocationChanged(Location location) {
              if (location != null) {
                  // This needs to stop getting the location data and save the battery power.
                  locManager.removeUpdates(locListener); 
  
                  String londitude = "Londitude: " + location.getLongitude();
                  String latitude = "Latitude: " + location.getLatitude();
                  String altitiude = "Altitiude: " + location.getAltitude();
                  String accuracy = "Accuracy: " + location.getAccuracy();
                  String time = "Time: " + location.getTime();
  
                  editTextShowLocation.setText(londitude + "\n" + latitude + "\n" + altitiude + "\n" + accuracy + "\n" + time);
                  progress.setVisibility(View.GONE);
              } 
          }
  
          @Override
          public void onProviderDisabled(String provider) {
              // TODO Auto-generated method stub
  
          }
  
          @Override
          public void onProviderEnabled(String provider) {
              // TODO Auto-generated method stub
  
          }
  
          @Override
          public void onStatusChanged(String provider, int status, Bundle extras) {
              // TODO Auto-generated method stub
  
          }
      }
  
      @Override
      public void onClick(DialogInterface dialog, int which) {
          if(which == DialogInterface.BUTTON_NEUTRAL){
              editTextShowLocation.setText("Sorry, location is not determined. To fix this please enable location providers");
          }else if (which == DialogInterface.BUTTON_POSITIVE) {
              startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
          }
      }
  </code></pre>
  
  <p>It is showing the Logitude Latitude which i am entering from <code>emulator control.</code></p>
  
  <p>In this i am manually entering the details of longitude and latitude 
  by going to <code>window-&gt;showview-&gt;other-&gt;emulator control</code> for testing in the emulator
  but what i need is i will have two edittext where i enter the place name(A) and (B)</p>
  
  <p>it should give me the distance</p>
  
  <p>please help</p>