2014-07-21 3 views
0

WP8의 Geolocator 클래스를 사용하여 현재 속도를 표시하는 작은 앱을 만들었습니다. Accuracy를 High로, MovementThreshold를 0.1 미터로 설정했습니다. 지금은 이동하는 동안 속도를 얻기 위해 Geolocator의 PositionChanged 이벤트를 사용하고 있습니다.이동하지 않을 때 WP8 Geolocator에서 속도 값 받기

문제는 이동을 멈 추면 PositionChanged 이벤트가 발생하지 않으므로 속도가 0이 아니기 때문에 대부분의 시간이 0이 아닐 때가 있습니다. 때로는 작동하지만 때로는 그렇지 않을 수도 있습니다. 임계 값 사이의 어딘가에서 멈추는 것과 관련이 있습니다.

내가 시도한 또 다른 posibility는 PositionChanged를 사용하지 않고 속도를 업데이트하기 위해 타이머를 사용하여 매 초 GetGeopositionAsync로 현재 위치를 폴링하지 않습니다. 이것은 더 잘 작동하는 것처럼 보이지만 이것이 필연적인지 여부와 관계없이 위치를 얻는 것처럼 이것은 더 많은 전력 소비 방법이라고 생각합니다.

이동 여부에 상관없이 현재 속도를 얻는 가장 좋은 방법은 무엇입니까? PositionChanged로 할 수 있습니까?

답변

0

나는 이상적인 해결책이 없다고 생각합니다.

귀하의 경우, 매 초마다 (예를 들어) 발생하는 DispatcherTimer를 사용할 것입니다. 언급 한대로 타이머를 사용할 수 있지만 GetGeopositionAsync를 매번 호출하는 대신 Geolocator 인스턴스를 사용하여 현재 속도를 얻을 수 있습니다.

PositionChanged가 실행될 때 속도가 업데이트 될뿐만 아니라 GetGeopositionAsync를 사용하여 리소스를 소비하지 않고 업데이트 된 속도를 얻을 수 있다고 생각합니다.

+0

답변 해 주셔서 감사합니다. 또한 타이머를 사용하는 것이 가장 좋은 방법이라고 생각하지만 Geolocator 인스턴스에서 현재 속도를 어떻게 얻습니까? 이 클래스에는 현재 위치 나 현재 속도 속성이없는 것 같습니다. 그래서 GetGeopositionAsync를 사용해야합니다. Geolocator의 보고서 간격 속성을 사용하여 강제로 현재 위치를보고했지만 Geolocator가 실제로 지정된 시간 간격으로 위치를보고하지 않기 때문에 더 악화됩니다. – CactusJack

+0

당신 말이 맞습니다. GetGeopositionAsync를 사용하지 않고는 지오 코더 위치를 얻을 수있는 방법이 없습니다. 나는 당신을 도울 다른 방법을 생각하려고 노력할 것이다. 그러나 지금 나는 아무것도 생각할 수 없다. – Meneses