1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // This file declares the Geoposition structure, used to represent a position
6 // fix. It was originally derived from:
7 // http://gears.googlecode.com/svn/trunk/gears/geolocation/geolocation.h
9 #ifndef CONTENT_PUBLIC_COMMON_GEOPOSITION_H_
10 #define CONTENT_PUBLIC_COMMON_GEOPOSITION_H_
14 #include "base/time/time.h"
15 #include "content/common/content_export.h"
19 struct CONTENT_EXPORT Geoposition
{
21 // These values follow the W3C geolocation specification and can be returned
22 // to JavaScript without the need for a conversion.
24 ERROR_CODE_NONE
= 0, // Chrome addition.
25 ERROR_CODE_PERMISSION_DENIED
= 1,
26 ERROR_CODE_POSITION_UNAVAILABLE
= 2,
27 ERROR_CODE_TIMEOUT
= 3,
28 ERROR_CODE_LAST
= ERROR_CODE_TIMEOUT
31 // All fields are initialized to sentinel values marking them as invalid. The
32 // error code is set to ERROR_CODE_NONE.
35 // A valid fix has a valid latitude, longitude, accuracy and timestamp.
36 bool Validate() const;
38 // These properties correspond to those of the JavaScript Position object
39 // although their types may differ.
40 // Latitude in decimal degrees north (WGS84 coordinate frame).
42 // Longitude in decimal degrees west (WGS84 coordinate frame).
44 // Altitude in meters (above WGS84 datum).
46 // Accuracy of horizontal position in meters.
48 // Accuracy of altitude in meters.
49 double altitude_accuracy
;
50 // Heading in decimal degrees clockwise from true north.
52 // Horizontal component of device velocity in meters per second.
54 // Time of position measurement in milisecons since Epoch in UTC time. This is
55 // taken from the host computer's system clock (i.e. from Time::Now(), not the
56 // source device's clock).
59 // Error code, see enum above.
61 // Human-readable error message.
62 std::string error_message
;
65 } // namespace content
67 #endif // CONTENT_PUBLIC_COMMON_GEOPOSITION_H_