From 0e2051a57a54b32ed00b96ced12db36131f6b56a Mon Sep 17 00:00:00 2001 From: Aix Lena <lena.aix@student-cs.fr> Date: Wed, 14 Apr 2021 00:01:24 +0200 Subject: [PATCH] maj --- main.py | 14 +++++++++++++- ordre_arbres.py | 23 +++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 ordre_arbres.py diff --git a/main.py b/main.py index 285cde8..b47bd81 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,7 @@ from request import requete_osm from coord_to_intersections import coord_to_inter +from ordre_arbres import classement_arbres +from ordre_arbres import ordre_arbre def tree_position(lat, lon): req = requete_osm(lat, lon) @@ -7,7 +9,17 @@ def tree_position(lat, lon): city = req['address']['town'] intersections = req['geojson']['coordinates'] [begin,end,coord_begin, coord_end] = coord_to_inter(intersections, lat, lon, main_street) - return {'lat':lat, 'lon':lon, 'ville':city, 'rue':main_street, 'début tronçon': begin, 'fin tronçon':end, 'coordonées début tronçon': coord_begin, 'coordonnées fin tronçon': coord_end} + return {'lat':lat, 'lon':lon, 'ville':city, 'rue':main_street, 'début tronçon': begin, 'fin tronçon':end, 'coordonnées début tronçon': coord_begin, 'coordonnées fin tronçon': coord_end} + +def trees_positions(liste_coord): + classement=classement_arbres(liste_coord) + dict={} + for troncon in classement: + dict[troncon]={} + ordre=ordre_arbre(classement[troncon][3:],classement[troncon][2]) + for i in range(len(ordre)): + dict[troncon][i]={'lat':ordre[i][1], 'lon':ordre[i][0], 'ville':troncon[0], 'rue':troncon[1], 'début tronçon': classement[troncon][0], 'fin tronçon':classement[troncon][1]} + return dict if __name__=="__main__": lat = 48.89227652 diff --git a/ordre_arbres.py b/ordre_arbres.py new file mode 100644 index 0000000..0de5162 --- /dev/null +++ b/ordre_arbres.py @@ -0,0 +1,23 @@ +from main import tree_position + +def ordre_arbre(liste_coord_arbres, coord_debut_troncon): + dist=[] + dict= {} + for coord in liste_coord_arbres: + dist.append((coord[0]-coord_debut_troncon[0])**2 + (coord[1]-coord_debut_troncon[1])**2) + for i in len(liste_coord_arbres): + dict[i]=liste_coord_arbres[dist.index(min(dist))] + dist.pop(dist.index(min(dist))) + liste_coord_arbres.pop(dist.index(min(dist))) + return dict + + +def classement_arbres(liste_coord): + info=[tree_position(coord[0], coord[1]) for coord in liste_coord] + dict={} #dictionnaire ayant en clés la ville, la rue, le troncon de début et de fin et pour valeur une liste avec le début du tronçon choisi, sa coordonnées et les coordonnées des arbres + for i in info: + if [i['ville'],i['rue'],{i['début tronçon'],i['fin tronçon']}] not in dict: + dict[[i['ville'],i['rue'],{i['début tronçon'],i['fin tronçon']}] ]=[i['début tronçon'],i['fin tronçon'],i['coordonnées début tronçon'],(i['lat'],i['lon'])] + else: + dict[[i['ville'],i['rue'],{i['début tronçon'],i['fin tronçon']}] ].append((i['lat'],i['lon'])) + return dict -- GitLab