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

gestion main_street

parents b218d839 6899c293
Branches
No related tags found
No related merge requests found
......@@ -19,18 +19,24 @@ def tree_position(lat, lon):
json = search_osm(main_street, city, country)
intersections = all_intersect(json)
[begin,end,coord_begin, coord_end] = coord_to_inter(intersections, lat, lon, main_street)
#pour la suite, on a besoin de stocker le couple début et fin de troncon sous frome de tuple
# et non de liste car on va s'en servir comme clé d'un dictionnaire
tuple_c_begin=(coord_begin[0],coord_begin[1])
tuple_c_end=(coord_end[0],coord_end[1])
return {'lat':lat, 'lon':lon, 'ville':city, 'rue':main_street, 'début tronçon': begin, 'fin tronçon':end, 'coordonnées début tronçon': tuple_c_begin, 'coordonnées fin tronçon': tuple_c_end}
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)
dict={}
#pour chaque troncon, on cherche l'ordre des arbres
for troncon in classement:
print('troncon')
dict[troncon]={}
ordre=ordre_arbre(classement[troncon],troncon[-1])
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 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)
......@@ -40,27 +46,34 @@ def classement_arbres(liste_coord):
info=[tree_position(coord[1], coord[0]) for coord in liste_coord]
dict={} #dictionnaire ayant en clés la ville, la rue, le troncon de début et de fin et pour valeur une liste avec les coordonnées des arbres
for i in info:
if (i['ville'],i['rue'],i['début tronçon'],i['fin tronçon'],i['coordonnées début tronçon']) not in dict and (i['ville'],i['rue'],i['fin tronçon'],i['début tronçon'],i['coordonnées fin tronçon']) not in dict :
dict[(i['ville'],i['rue'],i['début tronçon'],i['fin tronçon'],i['coordonnées début tronçon']) ]=[(i['lon'],i['lat'])]
#si le troncon n'est pas encore dans le dictionnaire, on le créé
#NB : peu importe si fin et début de troncon sont inversés, on choisit arbitrairement un début de troncon commun à tous les arbres du troncon, quitte a devoir les inverser dans les infos de l'arbre
if (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']) not in dict and (i['ville'],i['rue'],i['fin tronçon'],i['début tronçon'],i['coordonnées fin tronçon'],i['coordonnées début tronçon']) not in dict :
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']) ]=[(i['lon'],i['lat'])]
print(i)
elif (i['ville'],i['rue'],i['début tronçon'],i['fin tronçon'],i['coordonnées début tronçon']) not in dict:
dict[(i['ville'],i['rue'],i['fin tronçon'],i['début tronçon'],i['coordonnées fin tronçon']) ].append((i['lon'],i['lat']))
elif (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']) not in dict:
dict[(i['ville'],i['rue'],i['fin tronçon'],i['début tronçon'],i['coordonnées fin tronçon'],i['coordonnées début tronçon']) ].append((i['lon'],i['lat']))
print(i)
else:
dict[(i['ville'],i['rue'],i['début tronçon'],i['fin tronçon'],i['coordonnées début tronçon'])].append((i['lon'],i['lat']))
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
if __name__=="__main__":
<<<<<<< HEAD
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))
>>>>>>> 6899c2939dfc49fc78620b32ffd1efe547f87229
t2 = time.time()
print(t2-t1)
'''
#print(t2-t1)
lat = 48.89227652
lon = 2.253773690
#print(tree_position(lat, lon))
print(tree_position(lat, lon))'''
liste=[(2.24697,48.89535),(2.24705,48.89529),(2.2472,48.89518)]
print(trees_positions(liste))
\ No newline at end of file
'''
\ No newline at end of file
......@@ -3,10 +3,13 @@ def ordre_arbre(liste_coord_arbres, coord_debut_troncon):
dist=[]
dict= {}
for coord in liste_coord_arbres:
#on calcule les distances de chaque arbre au point de début de tronçon
dist.append((coord[0]-coord_debut_troncon[0])**2 + (coord[1]-coord_debut_troncon[1])**2)
for i in range(len(liste_coord_arbres)):
#on choisit les arbres un à un du plus proche au plus éloigné, afin de les classer dans le bon ordre
indice=dist.index(min(dist))
dict[i]=liste_coord_arbres[indice]
#on supprime l'arbre le plus proche de la liste pour pouvoir ensuite trouver l'arbre suivant
dist.pop(indice)
liste_coord_arbres.pop(indice)
return dict
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment