2017-04-02 1 views
1

getAccuracy()를 사용하여 위치의 정확도를 찾을 수는 있지만 정확도를 높이기 위해 설정 한 경우, 위치가 정확하지 않은 위치를 기록 할 수 있습니까? 사용자가있는 위치의 엄청나게 벗어난 표시? 사용자가 계속있는 것처럼 대부분의 위치 업데이트는 해당 지역 주변에서 이루어 지지만 가끔씩 위치 공급자가 딸꾹질하고 위치를 수 마일 떨어져보고합니다.LocationProvider - 매우 부정확하거나 부정확 한 위치를 감지합니다.

getAccuracy를 사용하면이 위치가 "정확함"으로 표시됩니까? 아니면 미친 듯이 높은 getAccuracy() 결과로 나타낼까요? 컷 오프 포인트를 프로그래밍하는 것은 쉽지만, 만약 내가 위치가 이전의 것들과 너무 다르다면 추가 검사를 코드화해야만하는지 궁금 해서요.

+0

이러한 딸꾹질의 경우 getAccuracy()는 큰 숫자를 반환하지만 위치는 캐시되고 오히려 오래된 수도 있습니다. IMHO 정확성은 때로는 너무 많은 의미가 주어집니다. 위치의 나이도 중요합니다. 내 대답을 보라. –

답변

0

여기서 정확도가 유일한 결정 요소는 아닙니다. 또한 위치의 나이와 제공 업체를 확인해야합니다 (Google Play 서비스 위치는 알려주지 않지만 원래 Android LocationManager는 알려줍니다).

사실 Google에는 maintaining a current best estimate에 대한 유용한 샘플 코드가 있습니다. 필자는 들어오는 위치 데이터에서 야생 점프를 필터링하기 위해이 변형을 사용했습니다. 기본적으로 위치는이 게이트를 통과하지 않으면보고되지 않습니다.

+0

전 onLocationChanged에서 위치 보고서 만 받고 있습니다. 그 위치가 마지막 위치보다 오래되지 않았습니까? 나는 FusedProvider yes를 사용하고 있습니다. 나는 항상 getTime()을 사용하여보고 된 시간을 확인하고 내가 아는 한 이전 위치를 반환하지 않습니다. – ashxu

+0

합리적인 것 같지만 확실하지 않습니다. 그러나 융합 된 제공 업체가 네트워크에서 시작된 캐시 된 위치를 제공하는 경우 GPS 시스템이 가동되기 전에 캐시 된 위치는 첫 번째 GPS 위치보다 오래된 타임 스탬프를 갖게됩니다. –