Browse Source

Programm vollständig, Entfernungsberechnung falsch, Eingabefehlerabfederung bei Auswahl fehlt noch

stguegen 5 years ago
parent
commit
3d7c5bafe5
1 changed files with 73 additions and 48 deletions
  1. 73 48
      pvl2gunnar.py

+ 73 - 48
pvl2gunnar.py

@@ -3,67 +3,92 @@
 #Author Gunnar Egenolff
 #letzte Bearbeitung 16.5.19
 import re
+import math as m
 debug = 0
 #2x fuer Start und Ziel
 lon = []
 lat = []
     #Eingabe Ort
-eingabe = raw_input("Ort: ")
-s = list(eingabe)
-print s
-if debug == 1: print "Eingabe als Liste: ", (s)
-laenge = len(s)
-if debug == 1: print "Anzahl der Listenelemente / Laenge der Eingabe: ", (laenge)
+x1 = []
+x2 = []
 
-    #Umwandlung Ortsname in Suchbegriff mit Toleranz
+def EINGABE(SZ, x):
+    lon1 = 0.0
+    lon2 = 0.0
+    lat1 = 0.0
+    lat2 = 0.0
+    eingabe = raw_input(SZ)
+    s = list(eingabe)
+    print s
+    if debug == 1: print "Eingabe als Liste: ", (s)
+    laenge = len(s)
+    if debug == 1: print "Anzahl der Listenelemente / Laenge der Eingabe: ", (laenge)
 
-x = []
-i = 0
-while i <= laenge - 1: #legt Liste mit regulaeren Ausdruecken an
-    if debug == 1: print "Position des ersetzten Buchstaben: ", s[i]
-    t = s[:] #Originalliste soll erhalten bleiben, gearbeitet wird mit modifizierter Liste
-    t.insert(i,".?.?") #je ein Buchstabe wird durch Punkt ersetzt
-    del t[i+1]
-    mod = "".join(t)
-    x.append("\t" + mod + "\s") #stellt sicher, dass Name nicht Teil eines laengeren Namens
-    if debug == 1: print "geaenderte Liste: ", t
-    if debug == 1: print "originale Liste: ", s
-    if debug == 1: print "Liste der Suchbegriffe: ", x
-    
-    i = i + 1
+    #Umwandlung Ortsname in Suchbegriff mit Toleranz
 
     
-
-
-
+    i = 0
+    while i <= laenge - 1: #legt Liste mit regulaeren Ausdruecken an
+        if debug == 1: print "Position des ersetzten Buchstaben: ", s[i]
+        t = s[:] #Originalliste soll erhalten bleiben, gearbeitet wird mit modifizierter Liste
+        t.insert(i,".?.?") #je ein Buchstabe wird durch Punkt ersetzt
+        del t[i+1]
+        mod = "".join(t)
+        x.append("\t" + mod + "\s") #stellt sicher, dass Name nicht Teil eines laengeren Namens
+        if debug == 1: print "geaenderte Liste: ", t
+        if debug == 1: print "originale Liste: ", s
+        if debug == 1: print "Liste der Suchbegriffe: ", x
     
+        i = i + 1
+   
     #zeilenweises Auslesen der Ortedatei, Abgleich mit Suchbegriff
 
-linenr = 0
-j = 0
-k = 1
-schonmalgesehen = []
-while j <= len(x) - 1: #fragt nacheinander alle Versionen des Ortsnamens ab
     linenr = 0
-    input = open("DE.tab")
-    Suchbegriff = str(x[j])
-    while True: # liest Datenbank zeilenweise aus
-        line = input.readline()
-        if not line: break
-        linenr += 1
-        if re.search(Suchbegriff, line) and not linenr in schonmalgesehen: #findet Ortsname
-            Liste = line.split("\t")
-            print k, Liste[7], Liste[3], Liste[4], Liste[5] #Ausgabe Plz, Ortsname, lon, lat
-	    lon.append(Liste[4])
-	    lat.append(Liste[5])
-	    k += 1
-	    schonmalgesehen.append(linenr)
-	    print schonmalgesehen
-	    if debug == 1: print lon, lat
-    if debug == 1: print "Suchbegriff: ", str(x[j])
-    j+=1
-    line = True
+    j = 0
+    k = 1
+    schonmalgesehen = []
+    while j <= len(x) - 1: #fragt nacheinander alle Versionen des Ortsnamens ab
+        linenr = 0
+        input = open("DE.tab")
+        Suchbegriff = str(x[j])
+        while True: # liest Datenbank zeilenweise aus
+            line = input.readline()
+            if not line: break
+            linenr += 1
+            if re.search(Suchbegriff, line) and not linenr in schonmalgesehen: #findet Ortsname
+                Liste = line.split("\t")
+                print k, Liste[7], Liste[3], Liste[4], Liste[5] #Ausgabe Plz, Ortsname, lon, lat
+                lon.append(Liste[4])
+                lat.append(Liste[5])
+                k += 1
+                schonmalgesehen.append(linenr)
+                if debug == 2: print schonmalgesehen
+                if debug == 2: print lon, lat
+        if debug == 1: print "Suchbegriff: ", str(x[j])
+        j+=1
+        line = True
 
     #Aufforderung zur Auswahl
-
+    auswahl = raw_input("Bitte geben Sie die Nummer des gewuenschten Orts ein: ")
+    auswahl = int(auswahl)
+    print lon [auswahl - 1]
+    Laengengrad = lon [auswahl - 1]
+    Breitengrad = lat [auswahl - 1]
+    Koordinaten = []
+    Koordinaten.append(Laengengrad)
+    Koordinaten.append(Breitengrad)
+    return Koordinaten
+K1 = EINGABE("Start eingeben: ", x1)
+print K1
+L1 = float(K1[0])
+B1 = float(K1[1])
+#print lon1
+K2 = EINGABE("Ziel eingeben: ", x2)
+L2 = float(K2[0])
+B2 = float(K2[1])
 #Berechnung der Entfernung
+print L1
+print L2
+
+distanz = 6371.0 * m.acos( m.cos(B1) * m.cos(B2) * m.cos(L1 - L2) + m.sin(L1) * m.sin(L2) )
+print distanz