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

ok

parents 987555e0 88b3ae94
No related branches found
No related tags found
No related merge requests found
# EBEC 2021
## cool
## ATTENTION ENTRER LES COORDONNEES SOUS LA FORME (LONG,LAT)
t
\ No newline at end of file
......@@ -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,17 +59,64 @@ 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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment