diff --git a/__pycache__/coord_to_intersections.cpython-38.pyc b/__pycache__/coord_to_intersections.cpython-38.pyc index 28d62caf207a3a0fc43ea6b8353d4b7d8ead0dcd..fc092d6c46a2f8effb3f1b171e10654751089825 100644 Binary files a/__pycache__/coord_to_intersections.cpython-38.pyc and b/__pycache__/coord_to_intersections.cpython-38.pyc differ diff --git a/__pycache__/ordre_arbres.cpython-38.pyc b/__pycache__/ordre_arbres.cpython-38.pyc index b05408dc19e6d84c4888815c085ff8cdd17f892a..e28b2a55adf60b8388afbd95585e8ddae84c77c3 100644 Binary files a/__pycache__/ordre_arbres.cpython-38.pyc and b/__pycache__/ordre_arbres.cpython-38.pyc differ diff --git a/__pycache__/research.cpython-38.pyc b/__pycache__/research.cpython-38.pyc index 93e98b12919c39a7ab7e7ed717d0bc3c49314af2..fa252d443fc9ddc868a03696f242dd8604e04b25 100644 Binary files a/__pycache__/research.cpython-38.pyc and b/__pycache__/research.cpython-38.pyc differ diff --git a/coord_to_intersections.py b/coord_to_intersections.py index 61e7da8fba9f1cc9d2810222e37f5e3b31211989..ea018726bce81fed1d02f2076e29d7fbefb21922 100644 --- a/coord_to_intersections.py +++ b/coord_to_intersections.py @@ -13,8 +13,10 @@ def coord_to_inter(liste_coord,lat,long,main_street): #On regarde l'intersection la plus proche de l'arbre print('nouveau candidat') try: + #On regarde si il reste des intersections possibles candidat=liste_coord[dist.index(min(dist))] except ValueError: + #Si aucune intersection possible, on considère que la rue ne s'intersecte qu'avec elle-même inter_street.append(main_street) inter_street_coord.append([long, lat]) inter_street.append(main_street) @@ -24,7 +26,7 @@ def coord_to_inter(liste_coord,lat,long,main_street): #On regarde si cette intersection correspond bien au croisement avec une autre rue, on trouve le nom de cette autre rue nom_de_rue=circular_research(candidat[1], candidat[0], main_street) if nom_de_rue== None : - #Si on ne trouve pas d'autre rue a cette intersection on écarte cette intersection + #Si on ne trouve pas d'autre rue que celle de l'arbre a cette intersection on écarte cette intersection indice=dist.index(min(dist)) dist.pop(indice) liste_coord.pop(indice) @@ -55,12 +57,15 @@ def coord_to_inter(liste_coord,lat,long,main_street): #On regarde l'intersection admissible la plus proche du début du tronçon print('nouveau candidat 2') try: + #On regarde si il reste des intersections possibles candidat=liste_coord_admissibles[d_1_2.index(min(d_1_2))] except ValueError: + # Si non, la rue est donc une impasse, donc la fin de tronçon correspond au début inter_street.append(inter_street[0]) inter_street_coord.append(inter_street_coord[0]) print("Arbre au niveau de l'intersection") return inter_street+inter_street_coord + #On cherche le nom de la rue qui croise la rue de l'arbre à cette intersection nom_de_rue=circular_research(candidat[1], candidat[0], main_street) if nom_de_rue== None : #Si cette intersection ne donne rien, on la rejette @@ -92,6 +97,7 @@ def coord_to_inter(liste_coord,lat,long,main_street): #On prend la liste des intersection situé du premier coté de l'arbe #Pour cela on calcule les distances entre le second point trouvé, l'arbre et les autres points #On conserve les points qui permettent de former un triangle avec un angle obtu au niveau de l'arbre + #Ce qui nous assure que l'on se situe de l'autre côté de l'arbre d=(liste_coord[i][0]-inter_street_coord[1][0])**2 + (liste_coord[i][1]-inter_street_coord[1][1])**2 if d > dist[i] + d_2: @@ -118,7 +124,9 @@ def coord_to_inter(liste_coord,lat,long,main_street): def opti_inter_street(c, main_street, liste_coord_admissibles, liste_coord_admissibles2, d_1_2, d_2_1, inter_street_init, inter_street_coord_init): + #p représente le coté de l'arbre duquel on se situe (p vaut 0 ou 1) p = c % 2 + #On charge les données correspondant au cas p if p == 0: liste_coord = liste_coord_admissibles2 dist = d_2_1 @@ -129,6 +137,7 @@ def opti_inter_street(c, main_street, liste_coord_admissibles, liste_coord_admis inter_street_coord = deepcopy(inter_street_coord_init) found = False while not(found): + #On cherche l'intersection la plus proche de l'intersection trouvée du côté opposé candidat=liste_coord[dist.index(min(dist))] nom_de_rue=circular_research(candidat[1], candidat[0], main_street) if nom_de_rue== None : @@ -151,7 +160,8 @@ def opti_inter_street(c, main_street, liste_coord_admissibles, liste_coord_admis def fct_d_1_2(liste_coord, inter_street_coord): d_1_2 = [] for i in range(len(liste_coord)): - #On prend la liste des intersection situé du premier coté de l'arbe + #On prend la liste des intersection situé du second coté de l'arbe + #On calcule la distance de ces points avec l'intersection trouvée pour le premier côté d=(liste_coord[i][0]-inter_street_coord[0][0])**2 + (liste_coord[i][1]-inter_street_coord[0][1])**2 d_1_2.append(d) return d_1_2 @@ -160,12 +170,14 @@ def fct_d_2_1(liste_coord, inter_street_coord): d_2_1 = [] for i in range(len(liste_coord)): #On prend la liste des intersection situé du premier coté de l'arbe + #On calcule la distance de ces points avec l'intersection trouvée pour le second côté d=(liste_coord[i][0]-inter_street_coord[1][0])**2 + (liste_coord[i][1]-inter_street_coord[1][1])**2 d_2_1.append(d) return d_2_1 def fct_dist(liste_coord, lat, long): dist=[] + #calcule les distances entre les points de la liste et le point de référence indiqué par lat et longs for inter in liste_coord: d=(inter[0]-long)**2 + (inter[1]-lat)**2 dist.append(d) diff --git a/main.py b/main.py index b43988170489469922eb3e8a4d582bb3c1d78762..8d1eee215487b26022ab6b1f011b64a686dd749f 100644 --- a/main.py +++ b/main.py @@ -44,8 +44,7 @@ def trees_positions(liste_coord): #ATTENTION mettre la longitude en premier 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]} - print(i+1) + dict[troncon][i+1]={'lat':ordre[i][1], 'lon':ordre[i][0]} return dict def classement_arbres(liste_coord): @@ -121,12 +120,11 @@ if __name__=="__main__": #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.246212,48.896523),(2.247038,48.895916)] - print(trees_positions(liste)) - ''' \ No newline at end of file + 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