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
+
+
+