• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #include "content/public/common/geoposition.h"
6 
7 namespace {
8 // Sentinel values to mark invalid data. (WebKit carries companion is_valid
9 // bools for this purpose; we may eventually follow that approach, but
10 // sentinels worked OK in the Gears code this is based on.)
11 const double kBadLatitudeLongitude = 200;
12 // Lowest point on land is at approximately -400 meters.
13 const int kBadAltitude = -10000;
14 const int kBadAccuracy = -1;  // Accuracy must be non-negative.
15 const int kBadHeading = -1;  // Heading must be non-negative.
16 const int kBadSpeed = -1;
17 }
18 
19 namespace content {
20 
Geoposition()21 Geoposition::Geoposition()
22     : latitude(kBadLatitudeLongitude),
23       longitude(kBadLatitudeLongitude),
24       altitude(kBadAltitude),
25       accuracy(kBadAccuracy),
26       altitude_accuracy(kBadAccuracy),
27       heading(kBadHeading),
28       speed(kBadSpeed),
29       error_code(ERROR_CODE_NONE) {
30 }
31 
Validate() const32 bool Geoposition::Validate() const {
33   return latitude >= -90. && latitude <= 90. &&
34          longitude >= -180. && longitude <= 180. &&
35          accuracy >= 0. &&
36          !timestamp.is_null();
37 }
38 
39 }  // namespace content
40