33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
from database import search_database
|
|
from geocoder import validate_address
|
|
from new_parser_test import parse
|
|
from route import build_route
|
|
import json
|
|
|
|
if __name__=='__main__':
|
|
user_input = parse()
|
|
user_input = json.loads(user_input)
|
|
print(user_input)
|
|
query =user_input['tags']
|
|
user_address =user_input['user_location']
|
|
user_time =user_input['time']
|
|
val_output = validate_address('addresses.sqlite',user_address)
|
|
print(val_output)
|
|
found_points,mapping = search_database('output.json', query)
|
|
print(len(found_points))
|
|
print(mapping)
|
|
user_position =[]
|
|
if val_output['valid']:
|
|
user_position.append(val_output['coordinates']['lat'])
|
|
user_position.append(val_output['coordinates']['lon'])
|
|
else:
|
|
print('Адрес не найден')
|
|
n_nodes = len(mapping)
|
|
allow_extend = any(v[1] for v in mapping.values())
|
|
print(len(mapping),allow_extend)
|
|
route =0
|
|
if allow_extend:
|
|
while n_nodes <= 5 and (route := build_route(found_points, mapping, user_position, user_time, n_nodes,strategy='random') or route): n_nodes += 1
|
|
else:
|
|
route= build_route(found_points, mapping, user_position, user_time, n_nodes,strategy='random')
|
|
print(route) |