Android GPS set location by calculation average -


i have class implements locationlistener, in method onlocationchanged current location once gps gets information.

my question save coordinates want (for example 5 coordinates) in list , calculate average once fifth coordinate , update result location.

my problem how set calculated coordinate location. have use mock location or there better way?

thank you.

edit: set location manager in oncreate:

//gps sensor     locationmanager = (locationmanager) getsystemservice(location_service);      criteria criteria = new criteria();     criteria.setaccuracy(criteria.accuracy_fine);     criteria.setpowerrequirement(criteria.no_requirement);     criteria.setcostallowed(false);         bestprovider = locationmanager.getbestprovider(criteria, true);      log.d(tag, "bestprovider: " + string.valueof(bestprovider));      locationmanager.requestlocationupdates(bestprovider, 2000, 2, locationlistener); 

here's listner:

locationlistener locationlistener = new locationlistener(){      @override     public void onlocationchanged(location location) {          latitude = location.getlatitude();         latitudelist.add(latitude);         longitude = location.getlongitude();         longitudelist.add(longitude);         altitude = location.getaltitude();         altitudelist.add(altitude);          log.d(tag, "latitude: " + string.valueof(latitude));         log.d(tag, "longitude: "+ string.valueof(longitude));         log.d(tag, " altitude " + string.valueof(altitude));          locationcounter++;         toast.maketext(getapplicationcontext(), ""+locationcounter,                 toast.length_long).show();          if(locationcounter == counterreset){              for(int = 0; < latitudelist.size();i++){                 latitudeaverage = latitudeaverage + latitudelist.get(i);                 longitudeaverage = longitudeaverage + longitudelist.get(i);                 altitudeaverage = altitudeaverage + altitudelist.get(i);             }              latitudeaverage = latitudeaverage / latitudelist.size();             longitudeaverage = longitudeaverage / longitudelist.size();             altitudeaverage = altitudeaverage / altitudelist.size();              locationupdate = new location(bestprovider);             location.setlatitude(latitudeaverage);             location.setlongitude(longitudeaverage);             location.setaltitude(altitudeaverage);              **here want set location update gps position**              locationcounter = 0;             latitudeaverage = 0;             longitudeaverage = 0;             altitudeaverage = 0;             latitudelist.clear();             longitudelist.clear();             altitudelist.clear();         }       }      @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      }  }; 


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -