I'm updating a Windows Mobile application to capture location information using the built-in GPS hardware. The Microsoft API provides a method GPSGetPosition that returns the following struct (ref:GPS_POSITION):

typedef struct _GPS_POSITION {
    DWORD dwVersion;
    DWORD dwSize;
    DWORD dwValidFields;
    DWORD dwFlags;
    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];

So I can determine the latitude and longitude but I would like to be able to calculate the accuracy of the result. The application runs on a Trimble Juno and the GPS Controller application on the device provides an accuracy value in metres. Is this something I can determine from the values in the struct or is this something specific to the hardware that would require a native function call? Is the accuracy value based on heuristics or is it a common calculation across different hardware?

1 Answer 1


Your dilution of precision is a representation of accuracy, however, it's not in meters. Have you seen this page with descriptions of each property of your struct?

Here is an explanation of the DOP scale and how it's calculated from actual measurements.

  • 2
    WRT your question, I put that link at the top of my question so yes, I have seen that page - it was where I sourced the struct definition. Thanks for the DOP link. I'm still in the dark as to how to calculate accuracy in metres from the DOP values. Is there anywhere else I could look for this info or is it specific to a particular GPS hardware/vendor? Commented Oct 19, 2011 at 21:04
  • I've discussed with one of our local GIS guys and I'm going to use PDOP as a measure of accuracy instead of trying to convert it to metres. For my application, anything below PDOP of 6 is valid but less then 2 is better. Thanks for your help. Commented Oct 20, 2011 at 2:51
  • 1
    @DavidClarke aww too bad, I was looking for the same answer, because I need to talk to an API that requires accuracy in metres (for gameplay validation)…
    – mirabilos
    Commented Aug 9, 2015 at 15:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.