2011-11-04 4 views
1

나는 안드로이드 앱을 만들고있어, 속도, 헤딩, 고도, long/lat와 같은 드라이버 통계를 좋은 정확도로 기록하기 위해 GPS를 사용해야합니다.속도가 안드로이드 앱 위치

매초마다 위치를 추적해야하지만 정확한 결과를 얻지 못하는 것 같습니다. 나는 시장에서 안드로이드 GPS 애플 리케이션을 시도하고 올바른 결과를 반환합니다.

지금까지 이걸 가지고 있습니다.

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    Criteria criteria = new Criteria(); 
    provider = locationManager.getBestProvider(criteria, false); 
    Location location = locationManager.getLastKnownLocation(provider); 
    VehicleListener vl = new VehicleListener(); 
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, vl); 

    if (location != null) { 
     System.out.println("Provider " + provider + " has been selected."); 
     lat =location.getLatitude(); 
     lon = location.getLongitude(); 
    } 
+0

결과가 정확하지 않은 방법을 자세히 설명해 주시겠습니까? 또한 GPS를 완벽하게 볼 수 있도록 외부에서 테스트하고 있습니까? – Lycha

+0

실내에서 위층에서 테스트 중이지만 네트워크 제공 업체를 통해 현재 위치에서 멀리 떨어진 도로를 읽는 것 같습니다. GPS를 사용하면 네트워크 제공 업체보다 더 많은 정보를 얻을 수 있습니다. 이상한 일은 정확한 위치를 알려주는 GPS 트래커라는 앱을 실행하고 있다는 것입니다. – unleashed

답변

2

비어있는 기준을 사용하고 있습니다. 더 정확한 결과를 얻으려면 다음을 시도하십시오.

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
Criteria criteria = new Criteria(); 
criteria.setAccuracy(Criteria.ACCURACY_FINE); 
provider = locationManager.getBestProvider(criteria, false); 
Location location = locationManager.getLastKnownLocation(provider); 
VehicleListener vl = new VehicleListener(); 
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, vl); 

if (location != null) { 
    System.out.println("Provider " + provider + " has been selected."); 
    lat =location.getLatitude(); 
    lon = location.getLongitude(); 
}