#Entwickler: Martin Mittrenga und Nico Hessler import sys #importieren saemtlicher Module import os import random as rdm import re as re #regular express fuer Bibo regulaerer ausdruecke from math import sin, cos, sqrt, atan2, radians #Teilelemente aus math fuer mathematische Ausdruecke #Begruessung os.system("clear") #loeschen des Bildschirms print ("-")*50 print ("Luftlinienberechner") print ("Erstellt von Niko Hessler und Martin Mittrenga") print ("-")*50 #======================================================================== #Datei einlesen datenbank = open("/data/share/nhessler/pvl/DE.tab", "r").readlines() #Einlesen der Datei #======================================================================== #Startpunkt Auswahl startpunkt = (raw_input("Geben sie Ihren Startpunkt an: ")) print ("-")*50 idee = [] for line in datenbank: if re.search(startpunkt, line): idee.append(line.split()) #Schreiben als liste for a in range(len(idee)): print "%i. idee:%s"%(a+1,idee[a]) print ("-")*50 choice = int(raw_input("Welche Option aus der Liste ist gewuenscht? "))-1 print idee[choice] latitudestart = idee[choice][4] longitudestart = idee[choice][5] print ("-")*50 #Endpunkt Auswahl endpunkt = (raw_input("Geben sie Ihren Endpunkt an: ")) print ("-")*50 idee = [] #leeren der Liste for line in datenbank: if re.search(endpunkt, line): idee.append(line.split()) #Schreiben als liste for a in range(len(idee)): print "%i. idee:%s"%(a+1,idee[a]) #%s string eingefuegt #%i dezimal/int print ("-")*50 choice = int(raw_input("Welche Option aus der Liste ist gewuenscht? "))-1 latitudeende = idee[choice][4] longitudeende = idee[choice][5] #======================================================================== print "-"*50 print "Zwischenausgabe der vier uebergebenen Variablen zur Berechnung:" print latitudestart print longitudestart print latitudeende print longitudeende print "-"*50 #Berechnung R = 6373.0 #Radius der Erde in Kilometer #Startpunkt lat1 = radians(float(latitudestart)) lon1 = radians(float(longitudestart)) #Endpunkt lat2 = radians(float(latitudeende)) lon2 = radians(float(longitudeende)) #Differenz dlon = lon2-lon1 dlat = lat2-lat1 a = sin(dlat / 2)**2 + cos(lat1) * cos(lat2) * sin(dlon / 2)**2 c = 2*atan2(sqrt(a), sqrt(1-a)) distance = R * c print "-"*50 print ("Ihre Entfernung betraegt:"), distance, ("Kilometer. Gute Fahrt!") print "-"*50 #====================================================================== while True: #Sicherheitsabfrage ob wirklich beendet werden soll eingabe=raw_input("Wollen Sie Wirklich beenden? Bitte 'J' oder 'N' eingeben: ") if eingabe=="N": bed= False break elif eingabe=="J":sys.exit() else: print"Falsche Eingabe!"