diff options
author | Minh Nguyễn <mxn@1ec5.org> | 2018-09-25 13:35:41 -0700 |
---|---|---|
committer | Minh Nguyễn <mxn@1ec5.org> | 2018-10-01 18:12:03 -0700 |
commit | a030f1474fa9eb556552ec48eba9cb5e771d1580 (patch) | |
tree | 53e10e998c81094da9d69997d91b1f5b3cb580e7 /platform/darwin/test | |
parent | 79dd9ca250a8360f3a32e8596e2cce1e397b8d78 (diff) | |
download | qtlocation-mapboxgl-a030f1474fa9eb556552ec48eba9cb5e771d1580.tar.gz |
[ios, macos] Distinguish between viewing distance and altitude
+[MGLMapCamera cameraLookingAtCenterCoordinate:fromDistance:pitch:heading:] incorrectly treated the distance as an altitude. Due to backwards compatibility concerns, this method can’t be fixed in place. Instead, separate +[MGLMapCamera cameraLookingAtCenterCoordinate:correctlyFromDistance:pitch:heading:] and +[MGLMapCamera cameraLookingAtCenterCoordinate:altitude:pitch:heading:] methods have been added.
Diffstat (limited to 'platform/darwin/test')
-rw-r--r-- | platform/darwin/test/MGLDocumentationExampleTests.swift | 2 | ||||
-rw-r--r-- | platform/darwin/test/MGLMapCameraTests.m | 49 |
2 files changed, 50 insertions, 1 deletions
diff --git a/platform/darwin/test/MGLDocumentationExampleTests.swift b/platform/darwin/test/MGLDocumentationExampleTests.swift index dd34b25291..a8f92dd528 100644 --- a/platform/darwin/test/MGLDocumentationExampleTests.swift +++ b/platform/darwin/test/MGLDocumentationExampleTests.swift @@ -376,7 +376,7 @@ class MGLDocumentationExampleTests: XCTestCase, MGLMapViewDelegate { } //#-example-code - let camera = MGLMapCamera(lookingAtCenter: CLLocationCoordinate2D(latitude: 37.7184, longitude: -122.4365), fromDistance: 100, pitch: 20, heading: 0) + let camera = MGLMapCamera(lookingAtCenter: CLLocationCoordinate2D(latitude: 37.7184, longitude: -122.4365), altitude: 100, pitch: 20, heading: 0) let options = MGLMapSnapshotOptions(styleURL: MGLStyle.satelliteStreetsStyleURL, camera: camera, size: CGSize(width: 320, height: 480)) options.zoomLevel = 10 diff --git a/platform/darwin/test/MGLMapCameraTests.m b/platform/darwin/test/MGLMapCameraTests.m new file mode 100644 index 0000000000..d40a336922 --- /dev/null +++ b/platform/darwin/test/MGLMapCameraTests.m @@ -0,0 +1,49 @@ +#import <XCTest/XCTest.h> +#import <CoreLocation/CoreLocation.h> +#import <Mapbox/Mapbox.h> +#import <MapKit/MapKit.h> + +@interface MGLMapCameraTests : XCTestCase + +@end + +@implementation MGLMapCameraTests + +- (void)testViewingDistance { + CLLocationCoordinate2D fountainSquare = CLLocationCoordinate2DMake(39.10152215, -84.5124439696089); + MGLMapCamera *camera = [MGLMapCamera cameraLookingAtCenterCoordinate:fountainSquare + acrossDistance:10000 + pitch:0 + heading:0]; + MKMapCamera *mkCamera = [MKMapCamera cameraLookingAtCenterCoordinate:fountainSquare + fromDistance:10000 + pitch:0 + heading:0]; + XCTAssertEqualWithAccuracy(camera.altitude, 10000, 0.01, @"Untilted camera should use distance verbatim."); + XCTAssertEqualWithAccuracy(camera.altitude, mkCamera.altitude, 0.01, @"Untilted camera altitude should match MapKit."); + + camera = [MGLMapCamera cameraLookingAtCenterCoordinate:fountainSquare + altitude:10000 + pitch:0 + heading:0]; + XCTAssertEqual(camera.altitude, 10000, @"Untilted camera should use altitude verbatim."); + + camera = [MGLMapCamera cameraLookingAtCenterCoordinate:fountainSquare + acrossDistance:10000 + pitch:60 + heading:0]; + mkCamera = [MKMapCamera cameraLookingAtCenterCoordinate:fountainSquare + fromDistance:10000 + pitch:60 + heading:0]; + XCTAssertEqualWithAccuracy(camera.altitude, 5000, 0.01, @"Tilted camera altitude should account for pitch."); + XCTAssertEqualWithAccuracy(camera.altitude, mkCamera.altitude, 0.01, @"Tilted camera altitude should match MapKit."); + + camera = [MGLMapCamera cameraLookingAtCenterCoordinate:fountainSquare + altitude:10000 + pitch:60 + heading:0]; + XCTAssertEqual(camera.altitude, 10000, @"Tilted camera should use altitude verbatim."); +} + +@end |