Guest User

Untitled

a guest
Nov 23rd, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. func directMetersFromCoordinate(from: CLLocationCoordinate2D, to: CLLocationCoordinate2D) -> Float {
  2.  
  3. let DEG_TO_RAD = 0.017453292519943295769236907684886
  4. let EARTH_RADIUS_IN_METERS = 6372797.560856
  5.  
  6. let latutideArc = (from.latitude - to.latitude) * DEG_TO_RAD
  7. let longitudeArc = (from.longitude - to.longitude) * DEG_TO_RAD
  8.  
  9. var latitudeH = sin(latutideArc * 0.5)
  10. latitudeH *= latitudeH
  11.  
  12. var longitudeH = sin(longitudeArc * 0.5)
  13. longitudeH *= longitudeH
  14. let tmp = cos(from.latitude*DEG_TO_RAD) * cos(to.latitude*DEG_TO_RAD)
  15.  
  16. return Float(EARTH_RADIUS_IN_METERS * 2.0 * asin(sqrt(latitudeH + tmp * longitudeH))) / 1000
  17.  
  18. }
Add Comment
Please, Sign In to add comment