diff --git a/main.py b/main.py
index 196cab5a2d6bf60f2759f46688b31b6b6513a0c8..5e95c0aa7d0b0060208a6efa3252bd6a7eaec6c0 100644
--- a/main.py
+++ b/main.py
@@ -30,12 +30,13 @@ def trees_positions(liste_coord): #ATTENTION mettre la longitude en premier
     #on classe les arbres afin de les regrouper par tronçon commun, on obtient un dictionnaire 
     #ayant en clé les caractéristique du troncon, et en valeur les coordonnées des arbres de ce troncon
     classement=classement_arbres(liste_coord)
+    new_classement=classement_reduit(classement)
     dict={}
     #pour chaque troncon, on cherche l'ordre des arbres
-    for troncon in classement:
+    for troncon in new_classement:
         print('troncon')
         dict[troncon]={} # ce dictionnaire contiendra, pour chaque arbre du troncon, toutes les informations demandées
-        ordre=ordre_arbre(classement[troncon],troncon[-1]) #troncon[-1] est la coordonnée du début de troncon à partir de laquelle on classe les arbres
+        ordre=ordre_arbre(new_classement[troncon],troncon[-2]) #troncon[-2] est la coordonnée du début de troncon à partir de laquelle on classe les arbres
         #ordre est le dictionnaire qui contient à la clé i les coordonnées du ième arbre du troncon
         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]}
@@ -58,16 +59,62 @@ def classement_arbres(liste_coord):
             dict[(i['ville'],i['rue'],i['début tronçon'],i['fin tronçon'],i['coordonnées début tronçon'],i['coordonnées fin tronçon'])].append((i['lon'],i['lat']))
     return dict
 
+def classement_reduit(classement): #fonction pour l'objectif 3 qui rassemble les troncons d'une même rue
+    rue_princ={}
+    #on créé un dictionnaire ayant pour clé la rue principale et pour valeur ds couples avec les 
+    # coordonnées de fin et début de troncon des arbres de cette rue ainsi que le nom de ces rues
+    new_classement={}
+    #on créé un dictionnaire qui contiendra la même chose que classement, mais avec les nouveau début et fin
+    for troncon in classement :
+        if troncon[1] in rue_princ:
+            rue_princ[troncon[1]].append((troncon[4],troncon[2]))
+            rue_princ[troncon[1]].append((troncon[5],troncon[3]))
+        else:
+            rue_princ[troncon[1]]=[(troncon[4],troncon[2]),(troncon[5],troncon[3])]
+    for rue in rue_princ:
+        liste_coord=rue_princ[rue]
+        dist_max=0
+        coord_deb=(0,0)
+        coord_fin=(0,0)
+        nom_deb=''
+        nom_fin=''
+        for i in range(len(liste_coord)):
+            for j in range(i, len(liste_coord)):
+                x1=liste_coord[i][0][0]
+                y1=liste_coord[i][0][1]
+                x2=liste_coord[j][0][0]
+                y2=liste_coord[j][0][1]
+                d=(x1-x2)**2+(y1-y2)**2
+                if d>dist_max:
+                    dist_max=d
+                    coord_deb=liste_coord[i][0]
+                    coord_fin=liste_coord[j][0]
+                    nom_deb=liste_coord[i][1]
+                    nom_fin=liste_coord[j][1]
+        for troncon in classement:
+            if troncon[1]==rue:
+                if (troncon[0],rue,nom_deb,nom_fin,coord_deb,coord_fin) in new_classement:
+                    new_classement[(troncon[0],rue,nom_deb,nom_fin,coord_deb,coord_fin)]+=classement[troncon]
+                else :
+                    new_classement[(troncon[0],rue,nom_deb,nom_fin,coord_deb,coord_fin)]=classement[troncon]
+    return new_classement
+
+
+    
+    
+
+
 if __name__=="__main__":
     
-    t1 = time.time()
-    lat, lon = 48.898867, 2.237485
-    print(tree_position(lat, lon))
+    '''t1 = time.time()
+    lat, lon = 48.892046, 2.249319
+    #print(tree_position(lat, lon))
     t2 = time.time()
     #print(t2-t1)
     
     lat = 48.89227652
     lon = 2.253773690
     print(tree_position(lat, lon))'''
-    liste=[(2.24697,48.89535),(2.24705,48.89529),(2.2472,48.89518)]
+    #liste=[(2.24697,48.89535),(2.24705,48.89529),(2.2472,48.89518)]
+    liste=[(2.246212,48.896523),(2.247038,48.895916)]
     print(trees_positions(liste))
\ No newline at end of file