#!/usr/bin/env python # -*- coding: utf-8 -*- from math import atan, cos, sin, sqrt, radians, fabs class Planet: def __init__(self, rad): self.radius = rad class Airport: def __init__(self, lat, lon): self.latitude = radians(lat) self.longitude = radians(lon) def countdist(self, airport, planet): delta = airport.longitude - self.longitude up1 = cos(airport.latitude) * sin(delta) up2 = (cos(self.latitude) * sin(airport.latitude)) - (sin(self.latitude) * cos (airport.latitude) * cos(delta)) up = sqrt(pow(up1, 2) + pow(up2, 2)) down1 = sin(self.latitude) * sin(airport.latitude) down2 = cos(self.latitude) * cos(airport.latitude) * cos (delta) down = down1 + down2 angle = atan(up/down) distance = fabs(planet.radius * angle) distanceinkm = 1.852 * distance print "Distance between two airports is equal to %s nautical miles" % distance print " which is %s kilometres" % distanceinkm if __name__ == "__main__": earth = Planet(3440.07) airport1 = Airport(float(raw_input("Type in airport 1 latitude in decimal format \n")), float(raw_input("Input airport 1 longitude in decimal format \n"))) airport2 = Airport(float(raw_input("Type in airport 2 latitude in decimal format \n")), float(raw_input("Input airport 2 longitude in decimal format \n"))) airport1.countdist(airport2, earth)