diff options
author | Alex Zolotarev <deathbaba@gmail.com> | 2011-11-15 21:41:32 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:28:03 +0300 |
commit | fe1c07f091dc9dfb7f5adda8a6569d729c1baebc (patch) | |
tree | d0806347d730c28aeb5ba4819b93af91cccda801 /platform | |
parent | c47199b2295a7969b4c49c24606474fae346a127 (diff) |
Closed #347 - check for invalid rect and location
Diffstat (limited to 'platform')
-rw-r--r-- | platform/location.hpp | 10 | ||||
-rw-r--r-- | platform/wifi_location_service.cpp | 15 |
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; + } } } } |