def search_submit(start_sta, end_sta, preference): #start_sta = request.query.start_sta #end_sta = request.query.end_sta results, start_trains, end_trains = save_direct_plans(start_sta, end_sta) if not results: results = save_tranfer_one_plans(start_trains, end_trains) if preference == "travel_time": result = sorted(results, key=attrgetter('travel_time', 'distance')) else: result = sorted(results, key=attrgetter('distance', 'travel_time')) plans = Plans(start_sta, end_sta,edges=result[:5]) if 'callback' in request.query: callback = request.query.callback response.content_type = 'application/javascript' return callback + '(' + plans.to_json() + ');' else: response.content_type = 'application/json' return json.dumps(plans.to_dict(), indent=4)
else: result = sorted(results, key=attrgetter('distance', 'travel_time')) plans = Plans(start_sta, end_sta,edges=result[:5]) if 'callback' in request.query: callback = request.query.callback response.content_type = 'application/javascript' return callback + '(' + plans.to_json() + ');' else: response.content_type = 'application/json' return json.dumps(plans.to_dict(), indent=4) if __name__ == '__main__': import time import sys start_sta = raw_input("start station:") end_sta = raw_input("end station:") start_time = time.time() results,start_trains,end_trains = save_direct_plans(start_sta, end_sta) if not results: results = save_tranfer_one_plans( start_trains, end_trains ) if not results: results = save_tranfer_all_plans( start_trains, end_trains ) result = sorted(results, key=attrgetter('travel_time','distance')) plans = Plans(start_sta, end_sta,edges=result[:1]) elapsed = time.time() - start_time print elapsed print plans.to_json()