Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Zolotarev <deathbaba@gmail.com>2011-11-15 21:41:32 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:28:03 +0300
commitfe1c07f091dc9dfb7f5adda8a6569d729c1baebc (patch)
treed0806347d730c28aeb5ba4819b93af91cccda801 /platform
parentc47199b2295a7969b4c49c24606474fae346a127 (diff)
Closed #347 - check for invalid rect and location
Diffstat (limited to 'platform')
-rw-r--r--platform/location.hpp10
-rw-r--r--platform/wifi_location_service.cpp15
2 files changed, 19 insertions, 6 deletions
diff --git a/platform/location.hpp b/platform/location.hpp
index 7342298854..5080acaeaf 100644
--- a/platform/location.hpp
+++ b/platform/location.hpp
@@ -52,4 +52,14 @@ namespace location
// int m_y;
// int m_z;
};
+
+ static inline bool IsLatValid(double lat)
+ {
+ return lat != 0. && lat < 90. && lat > -90.;
+ }
+ static inline bool IsLonValid(double lon)
+ {
+ return lon != 0. && lon < 180. && lon > -180.;
+ }
+
} // namespace location
diff --git a/platform/wifi_location_service.cpp b/platform/wifi_location_service.cpp
index 9e7ceedfd7..dfd6beecf9 100644
--- a/platform/wifi_location_service.cpp
+++ b/platform/wifi_location_service.cpp
@@ -42,12 +42,15 @@ namespace location
GpsInfo info;
info.m_latitude = json_real_value(lat);
info.m_longitude = json_real_value(lon);
- info.m_horizontalAccuracy = json_real_value(acc);
- // @TODO introduce flags to mark valid values
- info.m_timestamp = static_cast<double>(time(NULL));
- info.m_source = location::EGoogle;
- m_observer.OnGpsUpdated(info);
- success = true;
+ if (IsLatValid(info.m_latitude) && IsLonValid(info.m_latitude))
+ {
+ info.m_horizontalAccuracy = json_real_value(acc);
+ // @TODO introduce flags to mark valid values
+ info.m_timestamp = static_cast<double>(time(NULL));
+ info.m_source = location::EGoogle;
+ m_observer.OnGpsUpdated(info);
+ success = true;
+ }
}
}
}