diff options
author | Minh Nguyễn <mxn@1ec5.org> | 2018-09-25 13:49:00 -0700 |
---|---|---|
committer | Minh Nguyễn <mxn@1ec5.org> | 2018-10-01 18:12:03 -0700 |
commit | 85a474e2757269313799dd11208da8a1540ab81e (patch) | |
tree | c373762f1188230dddc26ccd1833bd038884181f /platform/darwin/src/MGLMapCamera.mm | |
parent | a030f1474fa9eb556552ec48eba9cb5e771d1580 (diff) | |
download | qtlocation-mapboxgl-85a474e2757269313799dd11208da8a1540ab81e.tar.gz |
[ios, macos] Added MGLMapCamera.viewingDistance property
Co-authored-by: Dave Prukop <dave.prukop@mapbox.com>
Diffstat (limited to 'platform/darwin/src/MGLMapCamera.mm')
-rw-r--r-- | platform/darwin/src/MGLMapCamera.mm | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/platform/darwin/src/MGLMapCamera.mm b/platform/darwin/src/MGLMapCamera.mm index 5ab0bffaa6..968b64ad17 100644 --- a/platform/darwin/src/MGLMapCamera.mm +++ b/platform/darwin/src/MGLMapCamera.mm @@ -131,6 +131,20 @@ BOOL MGLEqualFloatWithAccuracy(CGFloat left, CGFloat right, CGFloat accuracy) heading:_heading]; } ++ (NSSet<NSString *> *)keyPathsForValuesAffectingViewingDistance { + return [NSSet setWithObjects:@"altitude", @"pitch", nil]; +} + +- (CLLocationDistance)viewingDistance { + CLLocationDirection eyeAngle = 90 - self.pitch; + return self.altitude / sin(MGLRadiansFromDegrees(eyeAngle)); +} + +- (void)setViewingDistance:(CLLocationDistance)distance { + CLLocationDirection eyeAngle = 90 - self.pitch; + self.altitude = distance * sin(MGLRadiansFromDegrees(eyeAngle)); +} + - (NSString *)description { return [NSString stringWithFormat:@"<%@: %p; centerCoordinate = %f, %f; altitude = %.0fm; heading = %.0f°; pitch = %.0f°>", |