busroute.py

changeset 45
ddf7c58091ef
parent 44
f6b73571a6b8
child 46
548b526ded3b
--- a/busroute.py	Sun Jul 02 16:38:37 2017 +0300
+++ b/busroute.py	Tue Jul 11 09:10:31 2017 +0300
@@ -51,16 +51,15 @@
 		'Ihala': 150,
 		'Kauppakeskus Mylly': 200,
 		'Kuninkoja': 80,
-		'Moikoinen': 60,
+		'Moikoinen': 80,
 		'Raision keskusta': 150,
-		'Friskala': 20,
 		'Kukola': 50,
 		'Kaistarniemi': 50,
 		'Papinsaari': 50,
 		'Oriniemi': 50,
 		'Pikisaari': 50,
 		'Häppilä': 20,
-		'Haarla': 50,
+		'Haarla': 80,
 		'Ylioppilaskylä': 50,
 		'Halinen': 70,
 		'Kakskerta': 200,
@@ -110,6 +109,11 @@
 		"Sauvo": 500,
 		"Kemiönsaari": 500,
 		'Suovuori': 300,
+		'Eerikvalla': 50,
+		'Petäsmäki': 50,
+		'Tortinmäki': 50,
+		'Aura': 100,
+		'Friskala': -1,
 	}
 
 	if 'Kauppatori' not in reitti:
@@ -120,6 +124,9 @@
 	reitti_arvot = {}
 	f = lambda i: i**-0.3
 	factor = 1 / max(f(i + 1) for i in range(len(reitti)))
+	while priorities.get(reitti[-1], 0) < 0:
+		del reitti[-1]
+		destination = reitti[-1]
 	for i, stop in enumerate(reitti):
 		# muunna indeksi siten että myöhemmät alueet korostuvat
 		i = f(i + 1) * factor
@@ -141,7 +148,7 @@
 	weights = weights[:3]
 	# jos kolmas kylttiarvo ei ole tarpeeksi merkittävä suhteessa reitin pituuteen niin otetaan se pois
 	try:
-		if weights[2][0] != destination and weights[2][1] < (900 / length ** 0.8):
+		if weights[2][0] != destination and weights[2][1] < (725 / length ** 0.8):
 			del weights[2]
 	except IndexError:
 		pass
@@ -167,6 +174,8 @@
 		result = finalise(sign, abbreviation_level = 1)
 	if whole:
 		result = [from_place] + result
+	if not result:
+		result = [destination]
 	short_from_place = replacements.get(from_place, from_place)
 	if (
 		short_from_place != result[-1]

mercurial