정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Windows Phone의 위치 프로그래밍 모범 사례

2012-02-09

이 항목에서는 위치 서비스를 사용하는 Windows Phone 응용프로그램을 만들기 위한 권장 사항을 소개합니다.

위치 인식 응용프로그램을 만들 때 개발자는 응용프로그램에 정확한 위치 데이터를 제공하는 것과 응용프로그램의 전력 소비를 최소화하는 것 간에 균형을 유지해야 합니다. 모바일 장치에서 응용프로그램의 이러한 두 가지 요구 사항은 서로 역전 관계에 있습니다. Wi-Fi 및 셀룰러 라디오와 같이 덜 정확한 위치 정보를 생성하는 하드웨어는 일반적으로 보다 정밀한 위치 데이터를 수집할 수 있는 GPS 수신기보다 전력을 적게 소비합니다. 응용프로그램을 설계할 때 따라야 할 두 가지 기본 규칙이 있습니다.

  • 응용프로그램에 높은 정확도가 절대적으로 필요한 경우가 아니라면 위치 서비스에 대해 낮은 정확도와 전력 소비 최적화 설정을 사용합니다.

  • 위치 서비스는 응용프로그램에 필요할 때만 켜고 사용이 끝나면 끕니다.

위치 데이터에 대한 적정 정확도 수준 선택

위치 서비스는 여러 위치 정보 소스를 사용하지만 이들 소스 중 일부를 일정 시간 동안 사용할 수 없는 경우(GPS 위성 또는 휴대폰 기지국에 액세스할 수 없는 경우) 네이티브 코드 계층이 사용 가능한 데이터를 평가하고 최적의 소스 집합을 선택하는 작업을 처리합니다. 응용프로그램에서는 높은 정확도 또는 기본 정확도 중에서 선택하고, 전력 소비 최적화 설정을 선택하기만 하면 됩니다. 기본 위치 서비스 클래스인 GeoCoordinateWatcher를 초기화할 때 이 값을 설정할 수 있습니다.

GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.Default);

타당한 움직임 임계값 설정

모바일 장치의 GPS 하드웨어는 안테나가 없으므로 일반적으로 센서가 아주 민감하게 설계됩니다. 이 민감도는 표면 반사에서 적은 양의 신호 간섭 및 다른 환경적 영향을 발생시킬 수 있습니다. 기본 위치 서비스 클래스 GeoCoordinateWatcherMovementThreshold 속성을 노출합니다. 이 속성은 PositionChanged 이벤트가 발생하기 위해 일어나야 하는 최소 위치 변경을 지정합니다. MovementThreshold 속성을 아주 낮은 값으로 설정하면 응용프로그램이 실제로 신호 간섭의 결과인 이벤트를 수신하게 할 수 있습니다. 상당한 정도의 위치 변경만 나타내도록 신호 민감도를 낮추려면 MovementThreshold 속성을 20미터 이상으로 설정합니다. 이렇게 하면 응용프로그램의 전력 소비도 낮아집니다. 움직임 임계값을 0미터로 설정할 경우에는 초당 한 번의 빈도로 이벤트가 자주 발생하게 됩니다. 이 설정은 네비게이션 응용프로그램에 유용합니다.

위치 데이터의 비가용성에 대한 계획

위치 서비스는 여러 소스를 사용하여 단말기의 위치를 확인하지만 위치 데이터를 사용할 수 없는 경우가 있습니다. 응용프로그램은 이러한 데이터 결핍을 적절하게 처리해야 합니다. StatusChanged 이벤트는 위치 서비스의 상태가 변경될 때마다 발생합니다. 응용프로그램에서는 이 이벤트에 대한 처리기를 사용하여 사용자에게 위치 데이터를 사용할 수 있음을 알리고, 그에 따라 응용프로그램의 동작을 수정할 수 있습니다.

위치 서비스가 정상적으로 위치 데이터를 수집할 수 있는 경우라 하더라도 첫 번째 표시값을 초기화하고 가져오는 데는 일반적으로 15초가 소요되며, 최대 120초가 소요될 수도 있습니다. 응용프로그램은 이러한 점을 염두에 두고 설계되어야 하며 서비스가 시작되기를 기다리는 동안 응답할 수 없다면 사용자에게 이를 알려야 합니다. 낮은 정확도 설정은 GPS가 데이터를 반환하기를 기다리지 않으므로 GPS가 활성화되지 않은 경우에는 대개 더 빨라집니다. 다른 응용프로그램에서 GPS를 사용하고 있고 이미 데이터를 가져오는 중이면 높은 정확도 설정이 낮은 정확도 설정만큼 빠르거나 더 빠르게 데이터를 반환합니다.

표시:
© 2014 Microsoft