0

I am requesting location updates in every 15 sec, but each time the location gets changed, even if the device is on the same position.

Can anyone help me on this, to make me know exact location, atleast most approximate location, so that I can Calculate the Distance while traveling, and wait time while standing on the same place for a long time.

Vishal Sharma
  • 616
  • 1
  • 6
  • 21
  • 2
    you can check the accuracy of the location. This defines how accurate is the location you received, based on that you can filter the locations http://developer.android.com/reference/android/location/Location.html#getAccuracy() – Manish Apr 29 '15 at 05:34
  • @Manish this should be answer as it might be the point OP is looking for or he may found it useful! – Paresh Mayani Apr 29 '15 at 05:35
  • @PareshMayani Done added it as answer – Manish Apr 29 '15 at 05:37

2 Answers2

0

you can check the accuracy of the location. This defines how accurate is the location you received, based on that you can filter the locations http://developer.android.com/reference/android/location/Location.html#getAccuracy()

Manish
  • 1,215
  • 10
  • 29
  • Thanks, but I used an accuracy check too, it is always diaplaying 10.0 mtrs. and I am bit confused, how to calculate using this. – Vishal Sharma Apr 29 '15 at 05:56
  • Value 10 you getting here indicates that user is within 10 meter circle with center as lat and long in the location object. This way you can filter out the location with very high accuracy. From api doc "We define accuracy as the radius of 68% confidence. In other words, if you draw a circle centered at this location's latitude and longitude, and with a radius equal to the accuracy, then there is a 68% probability that the true location is inside the circle." – Manish Apr 29 '15 at 05:58
  • I would agree about accuracy here too. I am constantly getting back bad location updates, so my service goes minutes, perhaps hours without a location update. – Droid Chris Apr 29 '15 at 15:05
0
1 Create a layout file named layout_map having a fragment to render map

<?xml version="1.0" encoding="utf-8"?>
<!--
     <com.google.android.gms.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/mapView" />
-->
<!--
<?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> 
-->

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.MapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</FrameLayout>

2. Generate the mapkey and add it to in the manifest file

    <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyBYc4fMCweLC4w77_hRctOktAt2bqLmnyg" />
3. Added metatdata tag for googleplay service

  <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

4. Add the map,internet,corselocation permissions

   <uses-permission android:name="com.smartdurg.fragment.map.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

5. Create an activity named as MapActivtivity

package com.smartcity.bilaspur;

import java.io.IOException;
import java.util.List;
import java.util.Locale;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.location.Address;
import android.location.Geocoder;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import com.google.android.gms.maps.model.LatLng;
public class MapActivity extends Activity  {

    String latitude,longitude,address,city,country;
    LatLng defaultLatLng;
    Context context;
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.map_activity);
          try {
              context = this;
        Bundle extras = getIntent().getExtras();
        if (extras != null)
        {   
            latitude = extras.getString("lat");
            longitude = extras.getString("lng");
            Log.e("MAP", "latitude? "+latitude);
            Log.e("MAP", "longitude?"+longitude);
        }   
        defaultLatLng = new LatLng(Double.valueOf(latitude), Double.valueOf(longitude));

         Geocoder geocoder;
             List<Address> addresses ;
             geocoder = new Geocoder(this, Locale.getDefault());

            addresses = geocoder.getFromLocation(Double.valueOf(latitude), Double.valueOf(longitude), 1);

            Log.v("addresses",">>>>>>>>>>>>>>>>"+addresses);
            if (addresses.size()<=0)
            {
                Toast.makeText(this, "InValid Location",2).show();
                finish();
            }
            else
            {
              address = addresses.get(0).getAddressLine(0);
              city = addresses.get(0).getAddressLine(1);
              country = addresses.get(0).getAddressLine(2);
             String geoUri = "http://maps.google.com/maps?q=loc:" + latitude + "," + longitude + " (" + "GOT IT" + ")";

            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(geoUri));
            context.startActivity(intent);
            }
        } 

          catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

In this case I have found the latitude & longitude form the webservice, you can find a code to get exact location from below link also with current latitude & longitude.
http://stackoverflow.com/questions/17519198/how-to-get-the-current-location-latitude-and-longitude-in-android
AmDroid
  • 131
  • 5