지리적 위치 개체 초기화

중요

이 설명서 및 Windows 8.1 대한 지리적 위치 드라이버 샘플은 더 이상 사용되지 않습니다.

개체 원본 파일 geolocation.cpp에는 시뮬레이트된 지리적 위치 센서에 대한 설정 가능한 속성 키 및 데이터 필드 키를 초기 화하는 Initialize 메서드가 포함되어 있습니다. 이 메서드는 시작 시 센서 관리자에 의해 호출됩니다.

PROPERTYKEY(속성 키)는 GUID 및 센서 속성에 대한 고유 식별자를 제공하는 DWORD로 구성된 데이터 구조입니다. 시뮬레이트된 지리적 위치 센서의 경우 디바이스의 변경 민감도, 현재 보고서 간격 및 원하는 정확도라는 세 가지 설정 가능한 속성 키가 있습니다. 이러한 키는 geolocation.cpp 파일에 정의되어 있습니다.

const PROPERTYKEY g_SettableGeolocationProperties[] =
{
    SENSOR_PROPERTY_CHANGE_SENSITIVITY,         //[VT_UNKNOWN], IPortableDeviceValues
    SENSOR_PROPERTY_CURRENT_REPORT_INTERVAL,    //[VT_UI4]
    SENSOR_PROPERTY_LOCATION_DESIRED_ACCURACY,  //[VT_UI4]
};

변경 민감도 및 보고서 간격에 대한 자세한 내용은 필터링 데이터 항목을 참조하세요.

데이터 필드 키는 드라이버가 지원하는 각 고유 데이터 필드를 식별하는 데 사용하는 PROPERTYKEY 입니다. 의사 지리적 위치 센서의 경우 읽기의 타임스탬프, 현재 위도(도), 현재 경도(도) 등과 같은 데이터를 포함하는 8개의 지원되는 데이터 필드가 있습니다. 이러한 키는 geolocation.cpp 파일에도 정의됩니다.

const PROPERTYKEY g_SupportedGeolocationDataFields[] =
{
    SENSOR_DATA_TYPE_TIMESTAMP,                 //[VT_FILETIME]
    SENSOR_DATA_TYPE_LATITUDE_DEGREES,          //[VT_R8]
    SENSOR_DATA_TYPE_LONGITUDE_DEGREES,         //[VT_R8]
    SENSOR_DATA_TYPE_ERROR_RADIUS_METERS,       //[VT_R8]
    SENSOR_DATA_TYPE_ALTITUDE_ELLIPSOID_METERS, //[VT_R8]
    SENSOR_DATA_TYPE_ALTITUDE_ELLIPSOID_ERROR_METERS, //[VT_R8]
    SENSOR_DATA_TYPE_SPEED_KNOTS,               //[VT_R8]
    SENSOR_DATA_TYPE_TRUE_HEADING_DEGREES,      //[VT_R8]
};

CSensorManager::Start 메서드는 센서 DDI(디바이스 드라이버 인터페이스)를 만든 직후 CGeolocation::Initialize를 호출합니다. 이 작업은 module sensormanager.cpp에서 발생합니다.

Initialize 메서드는 InitializeGeolocation 메서드를 호출합니다. 이 후자의 메서드 는 CGeolocation::AddGeolocationSettablePropertyKeys 를 호출하여 의사 센서에서 지원하는 쓰기 가능한 속성의 속성 키를 초기화합니다. 속성 키를 추가한 후 InitializeGeolocation 메서드 는 CGeolocation::AddGeolocationDataFieldKeys 를 호출하여 지원되는 데이터 필드에 대한 데이터 필드 키를 초기화합니다.

지리적 위치 개체 정의

데이터 필터링