diff options
author | Minh Nguyễn <mxn@1ec5.org> | 2017-09-10 16:47:58 -0700 |
---|---|---|
committer | Minh Nguyễn <mxn@1ec5.org> | 2017-11-02 15:19:54 -0700 |
commit | 788482e1159c0a7cbd194485ca423d9b7bfcc0cc (patch) | |
tree | ce16212983f60f3bd87f109e53a5e3aafe4ed6f3 | |
parent | 7a1fdd8fa6919d6f50e2b99448a9b5822c2c60a9 (diff) | |
download | qtlocation-mapboxgl-788482e1159c0a7cbd194485ca423d9b7bfcc0cc.tar.gz |
[ios] Cleaned up radian conversions
-rw-r--r-- | platform/ios/src/MGLMapAccessibilityElement.m | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/platform/ios/src/MGLMapAccessibilityElement.m b/platform/ios/src/MGLMapAccessibilityElement.m index 84f44090ac..e220030399 100644 --- a/platform/ios/src/MGLMapAccessibilityElement.m +++ b/platform/ios/src/MGLMapAccessibilityElement.m @@ -13,16 +13,23 @@ typedef struct { MGLLocationRadians longitude; } MGLRadianCoordinate2D; +MGLRadianCoordinate2D MGLRadianCoordinate2DMake(MGLLocationRadians latitude, MGLLocationRadians longitude) { + MGLRadianCoordinate2D radianCoordinate = { + .latitude = latitude, + .longitude = longitude, + }; + return radianCoordinate; +} + +MGLRadianCoordinate2D MGLRadianCoordinate2DFromLocationCoordinate2D(CLLocationCoordinate2D degreeCoordinate) { + return MGLRadianCoordinate2DMake(degreeCoordinate.latitude * M_PI / 180, degreeCoordinate.longitude * M_PI / 180); +} + /** Returns the direction from one coordinate to another. */ CLLocationDirection MGLDirectionBetweenCoordinates(CLLocationCoordinate2D firstCoordinate, CLLocationCoordinate2D secondCoordinate) { - MGLRadianCoordinate2D firstRadianCoordinate = { - firstCoordinate.latitude * M_PI / 180, - firstCoordinate.longitude * M_PI / 180, - }; - MGLRadianCoordinate2D secondRadianCoordinate = { - secondCoordinate.latitude * M_PI / 180, - secondCoordinate.longitude * M_PI / 180, - }; + // Ported from https://github.com/mapbox/turf-swift/blob/857e2e8060678ef4a7a9169d4971b0788fdffc37/Turf/Turf.swift#L23-L31 + MGLRadianCoordinate2D firstRadianCoordinate = MGLRadianCoordinate2DFromLocationCoordinate2D(firstCoordinate); + MGLRadianCoordinate2D secondRadianCoordinate = MGLRadianCoordinate2DFromLocationCoordinate2D(secondCoordinate); CGFloat a = sin(secondRadianCoordinate.longitude - firstRadianCoordinate.longitude) * cos(secondRadianCoordinate.latitude); CGFloat b = (cos(firstRadianCoordinate.latitude) * sin(secondRadianCoordinate.latitude) |