|
@@ -6,20 +6,16 @@ import re
|
|
import math as m
|
|
import math as m
|
|
debug = 0
|
|
debug = 0
|
|
#2x fuer Start und Ziel
|
|
#2x fuer Start und Ziel
|
|
-lon = []
|
|
|
|
-lat = []
|
|
|
|
|
|
+
|
|
#Eingabe Ort
|
|
#Eingabe Ort
|
|
x1 = []
|
|
x1 = []
|
|
x2 = []
|
|
x2 = []
|
|
|
|
|
|
def EINGABE(SZ, x):
|
|
def EINGABE(SZ, x):
|
|
- lon1 = 0.0
|
|
|
|
- lon2 = 0.0
|
|
|
|
- lat1 = 0.0
|
|
|
|
- lat2 = 0.0
|
|
|
|
|
|
+
|
|
eingabe = raw_input(SZ)
|
|
eingabe = raw_input(SZ)
|
|
s = list(eingabe)
|
|
s = list(eingabe)
|
|
- print s
|
|
|
|
|
|
+
|
|
if debug == 1: print "Eingabe als Liste: ", (s)
|
|
if debug == 1: print "Eingabe als Liste: ", (s)
|
|
laenge = len(s)
|
|
laenge = len(s)
|
|
if debug == 1: print "Anzahl der Listenelemente / Laenge der Eingabe: ", (laenge)
|
|
if debug == 1: print "Anzahl der Listenelemente / Laenge der Eingabe: ", (laenge)
|
|
@@ -46,6 +42,9 @@ def EINGABE(SZ, x):
|
|
linenr = 0
|
|
linenr = 0
|
|
j = 0
|
|
j = 0
|
|
k = 1
|
|
k = 1
|
|
|
|
+ brt = []
|
|
|
|
+ lag = []
|
|
|
|
+ ort = []
|
|
schonmalgesehen = []
|
|
schonmalgesehen = []
|
|
while j <= len(x) - 1: #fragt nacheinander alle Versionen des Ortsnamens ab
|
|
while j <= len(x) - 1: #fragt nacheinander alle Versionen des Ortsnamens ab
|
|
linenr = 0
|
|
linenr = 0
|
|
@@ -57,9 +56,10 @@ def EINGABE(SZ, x):
|
|
linenr += 1
|
|
linenr += 1
|
|
if re.search(Suchbegriff, line) and not linenr in schonmalgesehen: #findet Ortsname
|
|
if re.search(Suchbegriff, line) and not linenr in schonmalgesehen: #findet Ortsname
|
|
Liste = line.split("\t")
|
|
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])
|
|
|
|
|
|
+ print k, Liste[7], Liste[3], Liste[4], Liste[5] #Ausgabe Plz, Ortsname, Breite, Laenge
|
|
|
|
+ ort.append(Liste[3])
|
|
|
|
+ brt.append(Liste[4])
|
|
|
|
+ lag.append(Liste[5])
|
|
k += 1
|
|
k += 1
|
|
schonmalgesehen.append(linenr)
|
|
schonmalgesehen.append(linenr)
|
|
if debug == 2: print schonmalgesehen
|
|
if debug == 2: print schonmalgesehen
|
|
@@ -69,26 +69,40 @@ def EINGABE(SZ, x):
|
|
line = True
|
|
line = True
|
|
|
|
|
|
#Aufforderung zur Auswahl
|
|
#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]
|
|
|
|
|
|
+ auswahl = 1000
|
|
|
|
+ while auswahl - 1 > len(lag):
|
|
|
|
+ while True:
|
|
|
|
+ try:
|
|
|
|
+ auswahl = raw_input("Bitte geben Sie die Nummer des gewuenschten Orts ein: ")
|
|
|
|
+ auswahl = int(auswahl)
|
|
|
|
+ break
|
|
|
|
+ except ValueError:
|
|
|
|
+ print "Bitte natuerliche Zahl eingeben!"
|
|
|
|
+ Ort = ort [auswahl - 1]
|
|
|
|
+ Laengengrad = lag [auswahl - 1]
|
|
|
|
+ Breitengrad = brt [auswahl - 1]
|
|
Koordinaten = []
|
|
Koordinaten = []
|
|
Koordinaten.append(Laengengrad)
|
|
Koordinaten.append(Laengengrad)
|
|
Koordinaten.append(Breitengrad)
|
|
Koordinaten.append(Breitengrad)
|
|
|
|
+ Koordinaten.append(Ort)
|
|
return Koordinaten
|
|
return Koordinaten
|
|
|
|
+
|
|
K1 = EINGABE("Start eingeben: ", x1)
|
|
K1 = EINGABE("Start eingeben: ", x1)
|
|
-print K1
|
|
|
|
-L1 = float(K1[0])
|
|
|
|
-B1 = float(K1[1])
|
|
|
|
|
|
+
|
|
|
|
+L1 = m.radians(float(K1[0]))
|
|
|
|
+B1 = m.radians(float(K1[1]))
|
|
|
|
+O1 = K1[2]
|
|
#print lon1
|
|
#print lon1
|
|
K2 = EINGABE("Ziel eingeben: ", x2)
|
|
K2 = EINGABE("Ziel eingeben: ", x2)
|
|
-L2 = float(K2[0])
|
|
|
|
-B2 = float(K2[1])
|
|
|
|
|
|
+L2 = m.radians(float(K2[0]))
|
|
|
|
+B2 = m.radians(float(K2[1]))
|
|
|
|
+O2 = K2[2]
|
|
|
|
+
|
|
#Berechnung der Entfernung
|
|
#Berechnung der Entfernung
|
|
-print L1
|
|
|
|
-print L2
|
|
|
|
|
|
+if debug == 3: print "laenge1", L1, K1[0]
|
|
|
|
+if debug == 3: print "breite1", B1, K1[1]
|
|
|
|
+if debug == 3: print "laenge2", L2, K2[0]
|
|
|
|
+if debug == 3: print "breite2", B2, K2[1]
|
|
|
|
|
|
-distanz = 6371.0 * m.acos( m.cos(B1) * m.cos(B2) * m.cos(L1 - L2) + m.sin(L1) * m.sin(L2) )
|
|
|
|
-print distanz
|
|
|
|
|
|
+distanz = 6371.0 * m.acos( m.cos(B1) * m.cos(B2) * m.cos(L2 - L1) + m.sin(B1) * m.sin(B2) )
|
|
|
|
+print "Die Entfernung zwischen", O1,"und", O2,"betraegt: ", distanz, "km."
|