From 5f46e734c8d3667a547b3c0ffcacc6d3bac9f63c Mon Sep 17 00:00:00 2001
From: Aix Lena <lena.aix@student-cs.fr>
Date: Thu, 15 Apr 2021 11:07:05 +0200
Subject: [PATCH] ajout obj 4

---
 main.py | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 53 insertions(+), 6 deletions(-)

diff --git a/main.py b/main.py
index 196cab5..5e95c0a 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
-- 
GitLab