Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

This structure contains location information, including latitude and longitude, as well as other related information like heading, speed, the satellites used to retrieve the location information, and so on.

To retrieve the data represented by this structure, call GPSGetPosition.

Syntax

typedef struct _GPS_POSITION {
  DWORD 
dwVersion;
  DWORD 
dwSize;
  DWORD 
dwValidFields;
  DWORD 
dwFlags;
  SYSTEMTIME 
stUTCTime;
  double 
dblLatitude;
  double 
dblLongitude;
  float  
flSpeed;
  float  
flHeading;
  double 
dblMagneticVariation;
  float  
flAltitudeWRTSeaLevel;
  float  
flAltitudeWRTEllipsoid;
  GPS_FIX_QUALITY	 
FixQuality;
  GPS_FIX_TYPE	
FixType;
  GPS_FIX_SELECTION   
SelectionType;
  float 
flPositionDilutionOfPrecision;
  float 
flHorizontalDilutionOfPrecision;
  float 
flVerticalDilutionOfPrecision;
  DWORD 
dwSatelliteCount;
  DWORD 
rgdwSatellitesUsedPRNs[GPS_MAX_SATELLITES];
  DWORD 
dwSatellitesInView;
  DWORD 
rgdwSatellitesInViewPRNs[GPS_MAX_SATELLITES];
  DWORD 
rgdwSatellitesInViewElevation[GPS_MAX_SATELLITES];
  DWORD 
rgdwSatellitesInViewAzimuth[GPS_MAX_SATELLITES];
  DWORD 
rgdwSatellitesInViewSignalToNoiseRatio[GPS_MAX_SATELLITES];
} GPS_POSITION, *PGPS_POSITION;

Members

dwVersion

Version of the GPS Intermediate Driver expected by the application. Must be set before the structure is passed to GPSGetPosition. Must be GPS_VERSION_1.

dwSize

Size of the structure, in bytes. Must be set before the structure is passed to GPSGetPosition.

dwValidFields

Valid fields in this instance of the structure. This field is a combination of some number of GPS_VALID_flags, or is 0 if no fields are valid. Valid fields depend on the GPS hardware, how old the location data can be (controlled by the dwMaximumAge parameter of the GPSGetPositioncall), and the current satellite signals, among other things.

dwFlags

Information about the state of the data retrieved in a call to GPSGetPosition. This field is a combination of GPS_DATA_FLAGS_flags.

stUTCTime

Universal time (UTC) according to information provided by GPS satellites.

dblLatitude

Latitude, in degrees. Positive numbers indicate north latitude.

dblLongitude

Longitude, in degrees. Positive numbers indicate east longitude.

flSpeed

Speed, in knots (nautical miles).

flHeading

Heading, in degrees. A heading of zero is true north.

dblMagneticVariation

Magnetic variation, which is the difference between the bearing to true north and the bearing shown on a magnetic compass. Positive numbers indicate east.

flAltitudeWRTSeaLevel

Altitude, in meters, with respect to sea level.

flAltitudeWRTEllipsoid

Altitude, in meters, of the sea-level with respect to the WGS84 ellipsoid. For more information about the use of the WGS84 ellipsoid with GPS, see this NMEA Web site .

FixQuality

Quality of the GPS fix, which is one of invalid, normal GPS, or differential GPS (DGPS). This field contains one of the values in the GPS_FIX_QUALITYenumeration.

FixType

Type of GPS fix, either 2-D (only latitude and longitude, from three satellites), or 3-D (latitude, longitude, and altitude, from four or more satellites). This field contains one of the values in the GPS_FIX_TYPEenumeration.

SelectionType

Whether 2-D or 3-D mode is selected automatically or manually. This field contains one of the values in the GPS_FIX_SELECTIONenumeration.

flPositionDilutionOfPrecision

Degree to which the overall position is affected by positional dilution of position (PDOP). PDOP is caused by the location of the satellites providing the GPS fix. Lower numbers indicate a more accurate position. A value of 1.0 indicates the least dilution (highest accuracy); a value of 50.0 indicates the most dilution (lowest accuracy).

flHorizontalDilutionOfPrecision

Degree to which the horizontal position (latitude and longitude) is affected by horizontal dilution of position (HDOP). HDOP is caused by the location of the satellites providing the GPS fix. Lower numbers indicate a more accurate position. A value of 1.0 indicates the least dilution (highest accuracy); a value of 50.0 indicates the most dilution (lowest accuracy).

flVerticalDilutionOfPrecision

Degree to which the vertical position (altitude) is affected by vertical dilution of position (VDOP). VDOP is caused by the location of the satellites providing the GPS fix. Lower numbers indicate a more accurate position. A value of 1.0 indicates the least dilution (highest accuracy); a value of 50.0 indicates the most dilution (lowest accuracy).

dwSatelliteCount

Number of satellites used to obtain the position.

rgdwSatellitesUsedPRNs

PRN (pseudo-random noise) numbers of the satellites used to obtain the position.

dwSatellitesInView

Number of satellites in view of the GPS hardware. This value ranges from 0 to GPS_MAX_SATELLITES.

rgdwSatellitesInViewPRNs

PRN (pseudo-random noise) numbers of the satellites in view of the GPS hardware.

rgdwSatellitesInViewElevation

Elevation, in degrees, of the satellites in view of the GPS hardware.

rgdwSatellitesInViewAzimuth

Azimuth, in degrees, of the satellites in view of the GPS hardware.

rgdwSatellitesInViewSignalToNoiseRatio

Signal to noise ratio of the satellites in view of the GPS hardware. Higher numbers indicate greater signal strength.

Remarks

The majority of the fields in this structure are translations from the fields defined by the NMEA. For more information about NMEA standard, including additional description of the nature of the fields, see this NMEA Web site .

Requirements

Header gpsapi.h
Windows Embedded CE Windows Embedded CE 6.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also