diff --git a/main.py b/main.py index d0d277c67ae013cc726e9a26cf6b6d8fdd7b1f8b..2ffe9127a3b1c4e739ed33ca56e5fb79d82f6bb3 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,7 @@ from request import requete_osm from coord_to_intersections import coord_to_inter from request2 import search_osm, all_intersect +from ordre_arbres import ordre_arbre def tree_position(lat, lon): req = requete_osm(lat, lon) @@ -10,9 +11,43 @@ def tree_position(lat, lon): json = search_osm(main_street, city, country) intersections = all_intersect(json) [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} + tuple_c_begin=(coord_begin[0],coord_begin[1]) + tuple_c_end=(coord_end[0],coord_end[1]) + + 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': tuple_c_begin, 'coordonnées fin tronçon': tuple_c_end} + +def trees_positions(liste_coord): #ATTENTION mettre la longitude en premier + classement=classement_arbres(liste_coord) + dict={} + for troncon in classement: + print('troncon') + dict[troncon]={} + ordre=ordre_arbre(classement[troncon],troncon[-1]) + for i in range(len(ordre)): + dict[troncon][i+1]={'lat':ordre[i][1], 'lon':ordre[i][0], 'ville':troncon[0], 'rue':troncon[1], 'début tronçon': troncon[2], 'fin tronçon':troncon[3]} + print(i+1) + return dict + +def classement_arbres(liste_coord): + info=[tree_position(coord[1], coord[0]) 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 les coordonnées des arbres + for i in info: + if (i['ville'],i['rue'],i['début tronçon'],i['fin tronçon'],i['coordonnées début tronçon']) not in dict and (i['ville'],i['rue'],i['fin tronçon'],i['début tronçon'],i['coordonnées fin tronçon']) not in dict : + dict[(i['ville'],i['rue'],i['début tronçon'],i['fin tronçon'],i['coordonnées début tronçon']) ]=[(i['lon'],i['lat'])] + print(i) + elif (i['ville'],i['rue'],i['début tronçon'],i['fin tronçon'],i['coordonnées début tronçon']) not in dict: + dict[(i['ville'],i['rue'],i['fin tronçon'],i['début tronçon'],i['coordonnées fin tronçon']) ].append((i['lon'],i['lat'])) + print(i) + else: + dict[(i['ville'],i['rue'],i['début tronçon'],i['fin tronçon'],i['coordonnées début tronçon'])].append((i['lon'],i['lat'])) + return dict if __name__=="__main__": lat = 48.89394122 lon = 2.247959188 - print(tree_position(lat, lon)) \ No newline at end of file + print(tree_position(lat, lon)) + lat = 48.89227652 + lon = 2.253773690 + #print(tree_position(lat, lon)) + liste=[(2.24697,48.89535),(2.24705,48.89529),(2.2472,48.89518)] + print(trees_positions(liste)) diff --git a/ordre_arbres.py b/ordre_arbres.py new file mode 100644 index 0000000000000000000000000000000000000000..cdf0d1528fed166938deed039911965a5f4fe984 --- /dev/null +++ b/ordre_arbres.py @@ -0,0 +1,15 @@ + +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 range(len(liste_coord_arbres)): + indice=dist.index(min(dist)) + dict[i]=liste_coord_arbres[indice] + dist.pop(indice) + liste_coord_arbres.pop(indice) + return dict + + +