Skip to content
Snippets Groups Projects
Commit ccfb4105 authored by Alexandre Pradeilles's avatar Alexandre Pradeilles
Browse files

simple output

parent 86b26163
No related branches found
No related tags found
No related merge requests found
No preview for this file type
No preview for this file type
No preview for this file type
......@@ -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)
......
......@@ -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)]
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
'''
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment