| Les deux révisions précédentesRévision précédente | |
| nsi:tds:tag_rue [2022/11/28 16:01] – goupillwiki | nsi:tds:tag_rue [2022/11/28 16:04] (Version actuelle) – [Recherche de la rue la plus proche] goupillwiki |
|---|
| ''lngAB = lngB - lngA'', ''latAB = latB - latA'', ''lngAM = lngM - lngA'' et ''latAM = latM - latA''. | ''lngAB = lngB - lngA'', ''latAB = latB - latA'', ''lngAM = lngM - lngA'' et ''latAM = latM - latA''. |
| |
| On calcule ensuite ''a = (lngAM*latAB - latAM*lngAB)/(latAB**2 + lngAB**2)'' ce qui permet d'obtenir ''lngN = lngM - a*latAB'' et ''latN = latM + a*lngAB''. | On calcule ensuite ''%%a = (lngAM*latAB - latAM*lngAB)/(latAB**2 + lngAB**2)%%''\\ ce qui permet d'obtenir ''lngN = lngM - a*latAB'' et ''latN = latM + a*lngAB''. |
| |
| Une fois que ''N'' est connu, on essaie de savoir dans quel cas on est : N1, N2 ou N3. | Une fois que ''N'' est connu, on essaie de savoir dans quel cas on est : N1, N2 ou N3. |
| On calcule donc ''t = (lngN - lngA)/lngAB if lngAB != 0 else (latN - latA)/latAB''. | On calcule donc ''t = (lngN - lngA)/lngAB if lngAB != 0 else (latN - latA)/latAB''. |
| |
| * Si ''t <= 0'', la distance recherchée est ''AM'', | * Si ''%%t <= 0%%'' (cas N1), la distance recherchée est ''AM'', |
| * si ''0 < t < 1'', la distance recherchée est ''MN'', | * si ''%%0 < t < 1%%'' (cas N2), la distance recherchée est ''MN'', |
| * si ''1 <= t '', la distance recherchée est ''BM''. | * si ''%%1 <= t%%'' (cas N3), la distance recherchée est ''BM''. |
| |
| Enfin, pour calculer la distance entre deux points ''F'' et ''G'', la formule est : | Enfin, pour calculer la distance entre deux points ''F'' et ''G'', la formule est : |