summaryrefslogtreecommitdiff
path: root/platform/darwin/test/MGLMapCameraTests.m
diff options
context:
space:
mode:
Diffstat (limited to 'platform/darwin/test/MGLMapCameraTests.m')
-rw-r--r--platform/darwin/test/MGLMapCameraTests.m39
1 files changed, 39 insertions, 0 deletions
diff --git a/platform/darwin/test/MGLMapCameraTests.m b/platform/darwin/test/MGLMapCameraTests.m
index 9c3a9a526c..9fbf6b9e45 100644
--- a/platform/darwin/test/MGLMapCameraTests.m
+++ b/platform/darwin/test/MGLMapCameraTests.m
@@ -9,6 +9,45 @@
@implementation MGLMapCameraTests
+- (void)testEyeCoordinateInitialization {
+ CLLocationCoordinate2D fountainSquare = CLLocationCoordinate2DMake(39.10152215, -84.5124439696089);
+ CLLocationCoordinate2D unionTerminal = CLLocationCoordinate2DMake(39.10980955, -84.5352778794236);
+
+ MGLMapCamera *camera = [MGLMapCamera cameraLookingAtCenterCoordinate:fountainSquare
+ fromEyeCoordinate:fountainSquare
+ eyeAltitude:1000];
+ MKMapCamera *mkCamera = [MKMapCamera cameraLookingAtCenterCoordinate:fountainSquare
+ fromEyeCoordinate:fountainSquare
+ eyeAltitude:1000];
+ XCTAssertEqual(camera.centerCoordinate.latitude, fountainSquare.latitude);
+ XCTAssertEqual(camera.centerCoordinate.longitude, fountainSquare.longitude);
+ XCTAssertEqual(camera.centerCoordinate.latitude, mkCamera.centerCoordinate.latitude);
+ XCTAssertEqual(camera.centerCoordinate.longitude, mkCamera.centerCoordinate.longitude);
+ XCTAssertEqual(camera.altitude, 1000, @"Eye altitude should be equivalent to altitude in untilted camera.");
+ XCTAssertEqual(camera.altitude, mkCamera.altitude, @"Eye altitude in untilted camera should match MapKit.");
+ XCTAssertEqual(camera.pitch, 0, @"Camera directly over center coordinate should be untilted.");
+ XCTAssertEqual(camera.pitch, mkCamera.pitch, @"Camera directly over center coordinate should have same pitch as MapKit.");
+ XCTAssertEqual(camera.heading, 0, @"Camera directly over center coordinate should be unrotated.");
+ XCTAssertEqual(camera.heading, mkCamera.heading, @"Camera directly over center coordinate should have same heading as MapKit.");
+
+ camera = [MGLMapCamera cameraLookingAtCenterCoordinate:fountainSquare
+ fromEyeCoordinate:unionTerminal
+ eyeAltitude:1000];
+ mkCamera = [MKMapCamera cameraLookingAtCenterCoordinate:fountainSquare
+ fromEyeCoordinate:unionTerminal
+ eyeAltitude:1000];
+ XCTAssertEqual(camera.centerCoordinate.latitude, fountainSquare.latitude);
+ XCTAssertEqual(camera.centerCoordinate.longitude, fountainSquare.longitude);
+ XCTAssertEqual(camera.centerCoordinate.latitude, mkCamera.centerCoordinate.latitude);
+ XCTAssertEqual(camera.centerCoordinate.longitude, mkCamera.centerCoordinate.longitude);
+ XCTAssertEqual(camera.altitude, 1000);
+ XCTAssertEqual(camera.altitude, mkCamera.altitude, @"Eye altitude in tilted camera should match MapKit.");
+ XCTAssertEqualWithAccuracy(camera.pitch, 65.3469146074, 0.01);
+ XCTAssertEqual(camera.pitch, mkCamera.pitch);
+ XCTAssertEqualWithAccuracy(camera.heading, 115.066396383, 0.01);
+ XCTAssertEqualWithAccuracy(camera.heading, mkCamera.heading, 0.01);
+}
+
- (void)testViewingDistanceInitialization {
CLLocationCoordinate2D fountainSquare = CLLocationCoordinate2DMake(39.10152215, -84.5124439696089);
MGLMapCamera *camera = [MGLMapCamera cameraLookingAtCenterCoordinate:fountainSquare