diff --git a/main.py b/main.py index 285cde89807f8f11657a7ea9b052857aa26bc7de..b47bd815efab0d6ecb601450e76352e0b3c582bf 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 0000000000000000000000000000000000000000..0de5162b9af38e12cc444d5e3c32a3a54505b197 --- /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