From 7e4bbdded836143d54b1279acc2dbae557cbf950 Mon Sep 17 00:00:00 2001
From: "a.pradeilles" <alexandre.pradeilles@student-cs.fr>
Date: Wed, 14 Apr 2021 10:09:54 +0200
Subject: [PATCH] tache 1 full

---
 .../coord_to_intersections.cpython-38.pyc     | Bin 1042 -> 2937 bytes
 __pycache__/request.cpython-38.pyc            | Bin 805 -> 655 bytes
 __pycache__/request2.cpython-38.pyc           | Bin 0 -> 944 bytes
 __pycache__/research.cpython-38.pyc           | Bin 1391 -> 1391 bytes
 coord_to_intersections.py                     | 133 +++++++++++++++---
 main.py                                       |  10 +-
 request.py                                    |   9 +-
 request2.py                                   |  46 ++++++
 research.py                                   |   2 +-
 9 files changed, 169 insertions(+), 31 deletions(-)
 create mode 100644 __pycache__/request2.cpython-38.pyc
 create mode 100644 request2.py

diff --git a/__pycache__/coord_to_intersections.cpython-38.pyc b/__pycache__/coord_to_intersections.cpython-38.pyc
index 1dd0f69fb0b5e7d19f9f57443b3aeb3fc98b014a..26e01917afeb2438f975e81a5ef0c71bafdf4b17 100644
GIT binary patch
literal 2937
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

delta 620
zcmew<Hi?5Tl$V!_fq{YH;h)lkLbi!~G9eNS3=Am@DU3M`xr|Yaj0`DEDa<VlQA{Z;
z!3>(LFF}em8E*+DXBH)w<|G!y7o`@bCKe@UB(s2|pqP(=fq|8Qfx(%9fuZ;U<HT*g
zjMpZ!FqTYqU=*t_VXR?oW=vtqW|+WObf$)(hGhX$33ClgGvh)=Nrqa^8qO3(NroCW
z5DCH(3@J>)3^kl7%y3a=Nd}0hI72NDL~ku`4Nna(*vuGY6KlC^SQfC>a4%$JWT;_S
zz*;lepOH=WS_uo(K!|0`&CIo2HC!nS*-R4{CmS%Ta$l=qUBFPo1=2Rzh*4ScS`BM3
zgC>h#5hDWw!%HR*0b*&gO%7sFuGi#?;?Bt|E=i3~&d)DOxy785SQ5pOlb@G<i#s<l
zGcUflq$oAD<Q7XxW^qXrPi9_8Y7tZ{N(h+;(I3SM7Q4lm62+06n3s~7l2{VOm6x9z
zpOPA1RGJ#amYJ85nVcHM0WvS%P&nQwiW|%XTV}M9p@?sC2Wv7L$eqO=lRvVG)G&%L
zaxn5SaxwBSaWQg1Sd4s(LW~BC956nU2%H5|Q6#{?z~HCJ9K`{P=^~J!VBsQAJR=eO
Z3=9mnIBatBQ%ZAE?Lfg(3{uO(2mr*fl6C+9

diff --git a/__pycache__/request.cpython-38.pyc b/__pycache__/request.cpython-38.pyc
index e126e2c49ff5b895a5e38de12556d6ad9565c9af..454e263dc447ff9d2e00c723570c962dccb8a888 100644
GIT binary patch
delta 359
zcmZ3=*3Zft%FD~ez`(#DGqWtAcOtKBm=^;BLkdF*V-7<ULkd$0a|=ThV=7Y$OEy!H
zTMBCmTMBy$M+#>O*BsU;=2V6SEGgWn%nO;KSX0?jS+m%i85tQ;Sr>3DWQgKSVGL%_
z<ar4)-EXoN<6$i(1_lOA)*?0r28JSb1_p*(Yz2u$iMhqMn2S;iZ?PAp7J3!u=dENY
z;-C21m6y9HwXig`BsD(2IG1g50F!jRAV?2Ke0*+VW?p=Jx{_tZs+=MZhjh*PH`y-z
zW^^b5Sy03bGM)uQu!0CqkfmHjAWs&-49H8&O^uH);sMEXg9u)b$*cuMnRz8q>=~(v
zDXB%p5YzZT()?h;3`~Lu0g!SIo80`A(wtN~kgdgH3=9k$EF63stW1nh_?wNLhmngB
E0Ox8?^8f$<

delta 490
zcmeBYUCPEA%FD~ez`(#@{joIR&_rI@`UnOFh7^Vr#vFzy2+bJ9n8K98+`<sWl){q2
z+QJaUoXV2Imd#WYlER+Ck;0k6mBO9EGlw;bHI;DzTMBO~>q4d|_Eh!-919tuI8(V&
zIhz?78B!R788rD`g6#53W&}}C%*4RJz|6qF;LO0lP%P%ez`#(#uz<0KVIgBJV+~^#
zQw?Jla~e}HgC?V&Cd)03^wj+1{FKz9DCYd)+*^#5w-_rlnQpNpXO>jnVoYDjP{ckt
zm(f*<9jcBMWGV~DDn>5GB2ESdhKUV_!Cuy6E#hNfU?}3B9Ka|kTf`1xg9#1>28LVQ
zMX80QsU@lL`Ng@MllL=9*NcOMIpX7U6EpMT<I|P?C3^Q4c{rr+-&XhQ{4Yj_B2YLM
zaf6KE0TH|)LXd%hL6f@(<i{c*kO0U9MKGiC5_41I<BLQ<62c%t6hwf{5d+!AT2Pdk
zR|0XGHP~%n0_;Ezo80`A(wtN~P*@gAF)%Q2Fmf<+uyF8kure`1;cqr}9wrV(03T6h
AoB#j-

diff --git a/__pycache__/request2.cpython-38.pyc b/__pycache__/request2.cpython-38.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..2d6200b60d09ad0827b735dc5ac0aa896231d5ec
GIT binary patch
literal 944
zcmWIL<>g{vU|`s~s4T&eg@NHQh=YvT85kHG7#J9eqZk+%QW#Pga~Pr^G-DKF3R4Pm
z3qurB3QG!W3qurhDoYAmHd9ep3VRAi3TFye3U>-a3eOz2DArVl1#Bt2sjLf`qS#Z}
z7ceelh~h})Oyy{1WMoKT3}(>edkM1DFPRxcK`|Qx0|Ur@XOR6`3=9l43^j~3OetV{
zQ&{G()iRebEMQDwtzllsRLfGsvVdtJLoI6!YcPW*o8L=D1_p*(ELp|*c|{=RO14{U
z#U(|lsU^2qk~2#xZ?Pxmm*$leRo>z+$j_-v&(DibPt6A@zr~i8UzD3z62+F1no?Sj
z`b#^bq@<wON?$)OKQ}Wku_QBBFTWr)4`NzwVu4<MQM!I{YGP4xhP@{9Esmnp!qU{@
zlHyy;>8T|}ATMdM-Qvzo%*>02=qUnutqA0|TWkf1MTxn^x0s7k3vaO(r51V>=jW|t
zC=z5~VEE;bY!wq)oLW>I<Cv3Lk(ifKl&TO=l$es5nUj-R9OIIoT$-DjS5h3~92}FH
zl$xw-WME_%1GU~rub}c47sOfd`Ng>`pkNdMg)I{kBOLx><K$uFU@Q`5U|>iFg%d~t
z2!oV!GB7ZJLm!j`(iv(QYZzP@VvTB<sw6=1Ajy!zB*{?AT*FwyY|c>27|u}0!NO3&
zkj+(O!N>rDkqm_#5e$VKHJ~_V_KRYN25}U3a(;eM3MepBi!~W<ad@Xzx)v4X7iqG9
z!|N7LW?o5ZQE_T=NoIcDEtaDE#FSgCU@>sWKnNjF4D%-D<ivwzK&nAP#R4GrGqNyp
zFfuXnF!C_+fjlSyQp^z_4~~ZTDt^bZ)V$JE1^2|<q|}m<#3(N3{L-SN)Uy1{)F?K$
zqQt!9)FLJZ1_rQuia?=J1j;I!Tt(b)QBa^2!3@qz%uS7tFX98q@_-0_5CL+_E!Kjf
z%)Anaqd^f1VS(Iwi^C>2KczG$)eaQ)#WD;G3>=IcOdNb1+#Jl{NP<MxPc}{-W)4OG
DAnW3a

literal 0
HcmV?d00001

diff --git a/__pycache__/research.cpython-38.pyc b/__pycache__/research.cpython-38.pyc
index ed2ca150e2e72ec77e82ae5798e6c587af0df0f5..95da01e8ab97a032581d32d5198493c24133f2be 100644
GIT binary patch
delta 35
rcmaFQ^`472l$V!_fq{XcOSUY*Wh1XFBm2jU#~oXLuxvJDv||APvT+Kz

delta 35
qcmaFQ^`472l$V!_fq{WRhovmRX(O*JBfGA%%<D&HQkxAK?N|VnxCnFr

diff --git a/coord_to_intersections.py b/coord_to_intersections.py
index 72f068a..4d518b1 100644
--- a/coord_to_intersections.py
+++ b/coord_to_intersections.py
@@ -1,4 +1,6 @@
 from research import circular_research
+from copy import deepcopy
+
 def coord_to_inter(liste_coord,lat,long,main_street):
     dist=[]
     inter_street=[]
@@ -8,6 +10,7 @@ def coord_to_inter(liste_coord,lat,long,main_street):
         dist.append(d)
     while len(inter_street)<1 :
         candidat=liste_coord[dist.index(min(dist))]
+        #print(candidat)
         nom_de_rue=circular_research(candidat[1], candidat[0], main_street)
         if nom_de_rue== None :
             indice=dist.index(min(dist))
@@ -17,33 +20,123 @@ def coord_to_inter(liste_coord,lat,long,main_street):
             inter_street.append(nom_de_rue)
             inter_street_coord.append(candidat)
             indice=dist.index(min(dist))
+            d_1 = min(dist)
             dist.pop(indice)
             liste_coord.pop(indice)
+    #Calcul du tronçon de l'autre coté
+    liste_coord_admissibles = []
+    d_1_2 = []
+    dist2 = []
+    for i in range(len(liste_coord)):
+        #On prend la liste des intersection situé du second coté de l'arbe
+        d=(liste_coord[i][0]-inter_street_coord[0][0])**2 + (liste_coord[i][1]-inter_street_coord[0][1])**2
+        if d > dist[i] + d_1:
+            liste_coord_admissibles.append(liste_coord[i])
+            d_1_2.append(d)
+            dist2.append(dist[i])
     while len(inter_street)<2 :
+        candidat=liste_coord_admissibles[d_1_2.index(min(d_1_2))]
+        nom_de_rue=circular_research(candidat[1], candidat[0], main_street)
+        if nom_de_rue== None :
+            indice=d_1_2.index(min(d_1_2))
+            d_1_2.pop(indice)
+            liste_coord_admissibles.pop(indice)
+            dist2.pop(indice)
+        elif nom_de_rue==inter_street[0]:
+            indice=d_1_2.index(min(d_1_2))
+            d_1_2.pop(indice)
+            liste_coord_admissibles.pop(indice)
+            dist2.pop(indice)
+        else : 
+            inter_street.append(nom_de_rue)
+            inter_street_coord.append(candidat)
+            indice=d_1_2.index(min(d_1_2))
+            d_2 = dist2[indice]
+            liste_coord_admissibles.pop(indice)
+    print(inter_street)
+    liste_coord_admissibles2 = []
+    d_2_1 = []
+    #dist = fct_dist(liste_coord, lat, long)
+    for i in range(len(liste_coord)):
+        #On prend la liste des intersection situé du premier coté de l'arbe
+        d=(liste_coord[i][0]-inter_street_coord[1][0])**2 + (liste_coord[i][1]-inter_street_coord[1][1])**2
+        print(liste_coord[i])
+        print(d - dist[i] - d_2)
+        if d > dist[i] + d_2:  #+ 2* 10**(-12)
+            liste_coord_admissibles2.append(liste_coord[i])
+            d_1_2.append(d)
+    inter_street2 = ['', '']
+    c = 0
+    while inter_street != inter_street2:
+        if c % 2 == 0:
+            liste_coord_admissibles2 += [inter_street_coord[0]]
+            d_2_1 = fct_d_2_1(liste_coord_admissibles2, inter_street_coord)
+            #print(liste_coord_admissibles2)
+            #print(d_2_1)
+        else:
+            liste_coord_admissibles += [inter_street_coord[1]]
+            d_1_2 = fct_d_2_1(liste_coord_admissibles, inter_street_coord)
+            print(d_1_2)
+
+        inter_street2 = deepcopy(inter_street)
+        inter_street, inter_street_coord = opti_inter_street(c, main_street, liste_coord_admissibles, liste_coord_admissibles2, d_1_2, d_2_1, inter_street, inter_street_coord)
+        c +=1
+    return inter_street+inter_street_coord
+
+
+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 = c % 2
+    if p == 0:
+        liste_coord = liste_coord_admissibles2
+        dist = d_2_1
+    else:
+        liste_coord = liste_coord_admissibles
+        dist = d_1_2
+    inter_street = deepcopy(inter_street_init)
+    inter_street_coord = deepcopy(inter_street_coord_init)
+    found = False
+    while not(found):
         candidat=liste_coord[dist.index(min(dist))]
-        dist_1_2= (candidat[0]-inter_street_coord[0][0])**2 + (candidat[1]-inter_street_coord[0][1])**2
-        dist_main_2= min(dist)
-        if dist_1_2<dist_main_2 :
+        nom_de_rue=circular_research(candidat[1], candidat[0], main_street)
+        if nom_de_rue== None :
             indice=dist.index(min(dist))
             dist.pop(indice)
             liste_coord.pop(indice)
-        else:
-            nom_de_rue=circular_research(candidat[1], candidat[0], main_street)
-            if nom_de_rue== None :
-                indice=dist.index(min(dist))
-                dist.pop(indice)
-                liste_coord.pop(indice)
-            elif nom_de_rue==inter_street[0]:
-                indice=dist.index(min(dist))
-                dist.pop(indice)
-                liste_coord.pop(indice)
-            else : 
-                inter_street.append(nom_de_rue)
-                inter_street_coord.append(candidat)
-                indice=dist.index(min(dist))
-                dist.pop(indice)
-                liste_coord.pop(indice)
-    return inter_street+inter_street_coord
+        elif nom_de_rue==inter_street[p]:
+            indice=dist.index(min(dist))
+            dist.pop(indice)
+            liste_coord.pop(indice)
+            found = True
+        else : 
+            inter_street[p] = nom_de_rue
+            inter_street_coord[p] = candidat
+            indice=dist.index(min(dist))
+            liste_coord.pop(indice)
+            found = True
+    return inter_street, inter_street_coord
+
+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
+        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
+
+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
+        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=[]
+    for inter in liste_coord:
+        d=(inter[0]-long)**2 + (inter[1]-lat)**2
+        dist.append(d)
+    return dist
 
 
 
diff --git a/main.py b/main.py
index ac07c1d..d0d277c 100644
--- a/main.py
+++ b/main.py
@@ -1,20 +1,18 @@
 from request import requete_osm
 from coord_to_intersections import coord_to_inter
+from request2 import search_osm, all_intersect
 
 def tree_position(lat, lon):
     req = requete_osm(lat, lon)
     main_street = req['address']['road']
     city = req['address']['town']
-    intersections = req['geojson']['coordinates']
+    country = req['address']['country']
+    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)
     return {'lat':lat, 'lon':lon, 'ville':city, 'rue':main_street, 'début tronçon': begin, 'fin tronçon':end, 'coordonées début tronçon': coord_begin, 'coordonnées fin tronçon': coord_end}
 
 if __name__=="__main__":
-<<<<<<< HEAD
     lat = 48.89394122
     lon = 2.247959188
-=======
-    lat = 48.89227652
-    lon = 2.253773690
->>>>>>> 813f0fa0998be24636500d74894a86f50c568431
     print(tree_position(lat, lon))
\ No newline at end of file
diff --git a/request.py b/request.py
index c62b237..8978afd 100644
--- a/request.py
+++ b/request.py
@@ -22,13 +22,14 @@ if __name__=="__main__":
 # intersection : 48.895307, 2.247367    48.894596, 2.247958      48.853994, 2.247177    48.894998, 2.247467
     #g = geocoder.osm([48.89, 2.247], method='reverse')
     params = {
-        'lat':48.894998,
-        'lon':2.247467,
+        'lat':48.89394122,
+        'lon':2.247959188,
         'format':'json',
         'zoom': 17,
         'polygon_geojson' : 1
     }
     req = requests.get("https://nominatim.openstreetmap.org/reverse",params) 
-
+    print(req.headers)
     reqJson = req.json()
-    print(reqJson)  #['geojson']['coordinates']
\ No newline at end of file
+    #print(reqJson)  #['geojson']['coordinates']
+
diff --git a/request2.py b/request2.py
new file mode 100644
index 0000000..ad08795
--- /dev/null
+++ b/request2.py
@@ -0,0 +1,46 @@
+import requests
+import json
+
+def search_osm(main_street, city, country):
+    params = {
+        'street' : main_street,
+        'city' : city,
+        'country' : country,
+        'polygon_geojson' : 1,
+        'format' : 'json',
+        'dedupe':0
+    }
+
+    req = requests.get("https://nominatim.openstreetmap.org/search?",params) 
+    reqJson = req.json()
+    return reqJson
+
+def all_intersect(json):
+    intersection = []
+    for road in json:
+        try:
+            inter = road['geojson']['coordinates']
+            intersection += inter
+        except KeyError:
+            pass
+    return intersection
+
+
+if __name__=="__main__": 
+
+    params = {
+        'street' : 'Avenue Gambetta',
+        'city' : 'Courbevoie',
+        'country' : 'France',
+        #'q' : '8 Avenue Gambetta, Courbevoie, France',
+        'polygon_geojson' : 1,
+        'format' : 'json',
+        'dedupe':0
+    }
+    req = requests.get("https://nominatim.openstreetmap.org/search?",params) 
+    #print(req.text)
+
+    reqJson = req.json()
+    print(reqJson)
+
+    #
\ No newline at end of file
diff --git a/research.py b/research.py
index b605890..2e42ee9 100644
--- a/research.py
+++ b/research.py
@@ -6,7 +6,7 @@ def circular_research(lat, lon, main_street):
     if not(street == main_street) and not(street == ''):
         return street
     step = 10**(-5)
-    while step < 10**(-4):
+    while step < 4*10**(-5):
         for i in range(8):
             street = check_position(lat, lon, step, main_street, i)
             if not(street == main_street) and not(street == ''):
-- 
GitLab