diff options
author | Ilya Grechuhin <i.grechuhin@gmail.com> | 2017-04-04 16:46:09 +0300 |
---|---|---|
committer | Ilya Grechuhin <i.grechuhin@gmail.com> | 2017-04-04 16:46:09 +0300 |
commit | 3453b66b685aa95d4f11fcf89f31b9b3ca9cf3e7 (patch) | |
tree | 3636671b44094b06c1e05a91e0d71062f5801cfa | |
parent | d96e931b48da5ab79e48bb89875ae3463acea1cb (diff) |
[MAPSME-4209] [ios] Attempt to fix crash.beta-731MAPSME-4209
-rw-r--r-- | iphone/Maps/UI/PlacePage/MWMPlacePageManager.mm | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/iphone/Maps/UI/PlacePage/MWMPlacePageManager.mm b/iphone/Maps/UI/PlacePage/MWMPlacePageManager.mm index 15bdcd8439..6bf9363077 100644 --- a/iphone/Maps/UI/PlacePage/MWMPlacePageManager.mm +++ b/iphone/Maps/UI/PlacePage/MWMPlacePageManager.mm @@ -1,4 +1,5 @@ #import "MWMPlacePageManager.h" +#import <Crashlytics/Crashlytics.h> #import <Pushwoosh/PushNotificationManager.h> #import "CLLocation+Mercator.h" #import "MWMAPIBar.h" @@ -21,6 +22,7 @@ #import "SwiftBridge.h" #include "geometry/distance_on_sphere.hpp" +#include "geometry/point2d.hpp" #include "platform/measurement_utils.hpp" @@ -176,10 +178,19 @@ void logSponsoredEvent(MWMPlacePageData * data, NSString * eventName) - (void)onHeadingUpdate:(location::CompassInfo const &)info { CLLocation * lastLocation = [MWMLocationManager lastLocation]; - if (!lastLocation) + if (!lastLocation || !self.data) return; - CGFloat const angle = ang::AngleTo(lastLocation.mercator, self.data.mercator) + info.m_bearing; + auto const locationMercator = lastLocation.mercator; + auto const dataMercator = self.data.mercator; + + if (my::AlmostEqualAbs(locationMercator, dataMercator, 1e-10)) + return; + + CLS_LOG(@"Heading from [%@,%@] to [%@,%@]", @(locationMercator.x), @(locationMercator.y), + @(dataMercator.x), @(dataMercator.y)); + + CGFloat const angle = ang::AngleTo(locationMercator, dataMercator) + info.m_bearing; [self.layout rotateDirectionArrowToAngle:angle]; } |