2012-10-27 4 views
2

제목이 모호하면 사과하지만 정확한 방법은 아닙니다. GPS를 사용하는 iPhone 용 앱을 작성 중입니다. didUpdateLocations: 메서드에서 임의의 크기의 변수에 대해 위치의 수평 정확도를 테스트합니다 (좋은 시작점처럼 보였으므로이 값을 50으로 설정했습니다). 수평 정확도가 50보다 작 으면 위치를 저장하고 카운터를 증가시켜 위치가 성공적으로 수집되었음을 나타냅니다. 수평 정확도가 테스트를 통과하지 못하면 위치 성공 카운터가 감소합니다. 저는 수평 정확도 테스트 값을 조정할 방정식을 제시하려고 노력해 왔습니다.적응 정밀 알고리즘/방정

정확도 테스트에 카운터를 사용하는 경우 문제가 해결하기가 쉽지만 선형 적이 지 않은 것으로 기대하고 있습니다. 카운터가 어떤 의미에서 가중치를 부여 받기를 원하기 때문에 정확도 테스트 변수가 처음에는 0에 빠르게 접근하고 가까워지면 속도가 느려집니다.

나는 이런 식으로 일하는 것이었지만, 정확도 테스트 변수가 GPS가 일치하기에 너무 정밀 해지면 진동하기 시작합니다. 그 후에는 1에서 80 정도의 값 사이에서 점프합니다. 여기처럼 보이는 무엇을 : 나는 시간이 일을 만지작 봤는데 뭔가 실제적인 작업을 얻이 수없는 것 그리고 내가 구글을 검색 시도

int previousCounter = successCounter; 

if (location.horizontalAccuracy < accuracy) 
{ 
    // save location... 
    successCounter++; 
} 
else 
    successCounter--; 

int direction = previousCounter - successCounter; 
accuracy = 50 - direction * pow(successCounter, 2); 

, 그러나 나는 무엇을 찾아야할지 정확히 모르겠습니다 . 나는 여기있는 누군가가 도울 수 있기를 바라고있다.

+0

너무 작은 경우 정확도를 일정 비율만큼 증가시키고 너무 큰 경우 일정 비율만큼 줄이는 것은 어떻습니까? –

+0

입력 해 주셔서 감사합니다. 난 멋진 방정식없이 문제를 해결했다. 이 문제를 해결할 수 있도록 솔루션을 게시 할 것입니다. –

답변

0

방정식을 사용하지 않고 이것을 선형 접근법으로 끝 냈습니다. 나는 성공 카운트를 가중치로 끝낼 수도 있습니다. 조금씩 조정하기 만하면됩니다. 결국, 선형 접근법은 제가 앱에서 현장 테스트를 한 후에 발견하려고했던 것보다 충분했습니다. 생각해봤을 때, 이것은 달성하려는 목표를 달성하지 못했기 때문에 선형 접근 방식을 사용하게되었습니다. 원래이 알고리즘이 GPS에 대한 적응 정확도를 제공하기 위해 의도되었지만 현재 판독 값의 정확성에 대한 정보를 제공하는 것이 실제로 유용하다는 사실을 알게되었습니다. 약간의 실패 :/