--- a/busroute.py Sat Sep 23 01:23:55 2017 +0300 +++ b/busroute.py Mon Sep 25 10:46:23 2017 +0300 @@ -45,7 +45,7 @@ name = abbreviations.get(name, name) return name -def reduce_schedule(reitti, trip_length, whole = False): +def reduce_schedule(reitti, trip_length, whole = False, long = False): length = ((trip_length / 600) * 3 + len(reitti) * 2) / 5 if not reitti: return '' @@ -62,12 +62,12 @@ priorities = { 'ihala': 150, 'kauppakeskus mylly': 200, - 'kuninkoja': 80, + 'kuninkoja': 150, 'moikoinen': 80, 'raision keskusta': 150, 'kukola': 50, 'kaistarniemi': 50, - 'papinsaari': 50, + 'papinsaari': 80, 'oriniemi': 50, 'pikisaari': 50, 'häppilä': 20, @@ -76,8 +76,8 @@ 'halinen': 70, 'kakskerta': 200, 'pansio': 50, - 'räntämäki': 10, - 'verkahovi': 20, + 'räntämäki': 25, + 'verkahovi': 25, 'skanssi': 200, 'vaala': 20, 'varissuo': 60, @@ -110,7 +110,7 @@ 'marttila': 100, 'koski tl': 100, 'katariina': 50, - 'länsikeskus': 50, + 'länsikeskus': 30, 'kaanaa': 100, 'satava': 50, 'suikkila': 50, @@ -118,7 +118,6 @@ 'räntämäki': 50, 'moisio': 25, 'pääskyvuori': 100, - #'rautatieasema': 50, 'logomo': 100, 'rymättylä': 50, "sauvo": 500, @@ -132,8 +131,35 @@ 'merimasku': 50, 'turkuhalli': 100, 'messukeskus': 100, - 'naantalin pikatie': 150, - 'helsingin valtatie': 500, + 'naantalin pikatie': 25, + 'helsingin valtatie': 25, + 'lauste': 25, + 'pompo': 25, + 'loukinainen': 25, + 'tuorla': 25, + 'satakunnantie': 25, + 'hepokulta': 25, + 'nättinummi': 25, + 'nummenmäki': 25, + 'kurala': 25, + 'itäharju': 25, + 'vasaramäki': 25, + 'pohjola': 25, + 'iso-heikkilä': 25, + 'patterinhaka': 25, + 'illoinen': 50, + 'luolavuori': 25, + 'mäntymäki': 25, + 'kurjenmäki': 25, + 'kuusisto': 25, + 'rautatieasema': 25, + 'majakkaranta': 25, + 'itäranta': 25, + 'martti': 25, + 'vähä-heikkilä': 25, + 'särkilahti': 25, + 'urusvuori': 25, + 'port arthur': 25, } if 'kauppatori' not in reitti: @@ -164,19 +190,22 @@ for i, stop in enumerate(reitti) \ if reitti_arvot[stop] >= 1 ], key = lambda stop: -stop[1]) - # enintään neljä tulee kylttiin - 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] < (725 / length ** 0.8): - del weights[2] - except IndexError: - pass - try: - if weights[1][0] != destination and weights[1][1] < (500 / length ** 1.15): - del weights[1] - except IndexError: - pass + if long: + weights = weights[:4] + else: + # enintään neljä tulee kylttiin + 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] < (725 / length ** 0.8): + del weights[2] + except IndexError: + pass + try: + if weights[1][0] != destination and weights[1][1] < (500 / length ** 1.15): + del weights[1] + except IndexError: + pass # lajitellaan painoarvot uudestaan reittijärjestykseen jotta sign tulee oikeinpäin weights = sorted(weights, key = lambda weight_data: weight_data[2]) # muodostetaan sign..