Hi, thanks for all the input
Right now i still don't have any solution for get the best latitude and
longitude
I want to use kalman filter at the first, but after read some paper and
articles kalman filter is need the value from accelorometer
Unfortunately my requirement for this application is doesn't use any sensor
except the gps

@jinja : Hi thanks for the input, but i think it's the right way to get the
gps value.
 Because i need the int type value to put it on GeoPoint methode and get
the GeoPoint to animateTo ().


On Tue, Mar 13, 2012 at 1:47 PM, Yaron Reinharts
<[email protected]>wrote:

>  Hi,
>
> There is a section with the title "Maintaining a current best estimate" in
> the following link, it contains an implementation of a method called "
> isBetterLocation".
>
> http://developer.android.com/guide/topics/location/obtaining-user-location.html
>
> Hope this helps
> /Yaron
>
> --
> Yaron Reinharts
> Smart Drive 
> Applicationshttp://www.poncho.co.il/gateaway.phphttps://market.android.com/details?id=com.poncho.gsm.gate.activities
>
>
>
> On 03/13/2012 05:32 AM, Jinja wrote:
>
> Hello, I've never dealt with GPS data before, but having a quick look at
> your code it looks like you have a mismatch in converting your data to and
> from integers and doubles.
>
> I notice you multiply by 1E6 when extracting the lat/long, presumably this
> is to maintain some accuracy during the double to int conversion...
>
>  int lat = (int) (currentPosition.getLatitude()***1E6);
>
>  So one fix is to use all doubles and remove all of your *1E6. The other
> fix is to use /1E6 instead of *1E6 when converting back to doubles...
>
>  currentPosition.**setLatitude(smoothingCoor [0] / 1E6);
>
>  instead of...
>
>  smoothLat = (int) (smoothingCoor [0] * 1E6);
> currentPosition.**setLatitude(smoothLat);
>
>  I hope that fixes your issue.
>
>
>
> On Sunday, March 11, 2012 12:46:24 AM UTC-8, concave wrote:
>>
>> Hi guys, i've a little problem here.
>> I'm working with gps data, getting values every second and displaying
>> current position on a map.
>> The problem is that sometimes (specially when im using the app on
>> indoor and not make a move) the values vary a lot, making the current
>> position to change.
>> I was wondering about some easy enough method to avoid this.
>>  As a first idea, I thought about discarding values with accuracy
>> beyond certain threshold, and use Exponential filtering as i use on my
>> Bearing. But i get up on Antartica. Here's the code that i used to get
>> the location and filtering it with exponential :
>>
>> public void onLocationChanged(Location newLocation) {
>>                                // Get previous Location, needed to get
>> the Bearing Value
>>                               **  if(currentPosition != null)
>>                               **          {
>>                               **                  prevLocation =
>> currentPosition;
>>                               **                  pLat = (int)
>> (prevLocation.getLatitude() *1E6);
>>                               **                  pLongi = (int)
>> (prevLocation.getLongitude()***1E6);
>>
>>                               **          }
>>                               **  currentPosition = new Location
>> (newLocation);
>>                               **  int lat = (int)
>> (currentPosition.getLatitude()***1E6);
>>                               **  int longi = (int)
>> (currentPosition.getLongitude(**)*1E6);
>>
>>                               **  //Smoothing Latitude,Longitude
>>                               **  if(lat != 0 && longi != 0){
>>                               **          coor[0] = lat;
>>                               **          coor[1] = longi;
>>                               **          if (smoothingCoor == null){
>>                               **                  **smoothingCoor =
>> coor;
>>                               **          }
>>                               **                  for (i=0;
>> i<coor.length;i++){
>>                               **                          **smoothingCoor[i]
>> = smoothingCoor [i] +alpha * (coor[i] -
>> smoothingCoor[i]);
>>                               **                  }
>>                               **                  smoothLat = (int)
>> (smoothingCoor [0] * 1E6);
>>                               **                  smoothLongi = (int)
>> (smoothingCoor [1] * 1E6);
>>
>>                               **          
>> currentPosition.**setLatitude(smoothLat);
>>
>>                               **          
>> currentPosition.**setLongitude(smoothLongi);
>>
>>                               **  }
>>
>>                               **  // Get Bearing Value
>>                               **  if(prevLocation != null &&
>> currentPosition != null){
>>
>>                               **  bearing = 
>> prevLocation.bearingTo(**currentPosition);
>>
>>
>>                               **  //Smoothing bearing value with
>> exponential
>>                               **          if (smoothingBearing == 0) {
>>                                     **smoothingBearing = bearing;
>>                               **          } else {
>>                                     **smoothingBearing =
>> smoothingBearing +alpha * (bearing -
>> smoothingBearing);
>>                                     }
>>
>>                               **  }
>>
>> Hope you can understand my explanataion, and i provide enough
>> information
>> Thanks
>
>  --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>
>
>
>  --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to