Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func directMetersFromCoordinate(from: CLLocationCoordinate2D, to: CLLocationCoordinate2D) -> Float {
- let DEG_TO_RAD = 0.017453292519943295769236907684886
- let EARTH_RADIUS_IN_METERS = 6372797.560856
- let latutideArc = (from.latitude - to.latitude) * DEG_TO_RAD
- let longitudeArc = (from.longitude - to.longitude) * DEG_TO_RAD
- var latitudeH = sin(latutideArc * 0.5)
- latitudeH *= latitudeH
- var longitudeH = sin(longitudeArc * 0.5)
- longitudeH *= longitudeH
- let tmp = cos(from.latitude*DEG_TO_RAD) * cos(to.latitude*DEG_TO_RAD)
- return Float(EARTH_RADIUS_IN_METERS * 2.0 * asin(sqrt(latitudeH + tmp * longitudeH))) / 1000
- }
Add Comment
Please, Sign In to add comment