IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Problème de Calcul de distance entre 2 points XY


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 130
    Points : 55
    Points
    55
    Par défaut Problème de Calcul de distance entre 2 points XY
    Bonjour, j'ai un problème de calcul de distance Vol d'Oiseau entre 2 points XY.
    La formule géométrique a l'air correcte.
    Dans les 2 exemples ci joints Entre MONTERAULT FAULT SUR YONNE (77) et NANTERRE (92) ma formule calcule 99 kms en vol d'oiseau alors que sur tous les utilitaires la distance entre ces 2 villes est de 79 kms et 103 kms par la route.
    Pareil pour la distance entre CHAMPIGNY SUR MARNE (94) et ROSNY SUR SEINE(78) , la distance calculée est de 99 kms alors qu' en vol d'oiseau sur tous les utilitaires la distance entre ces 2 villes est de 68 kms et 89 kms par la route: La distance en vol d'oiseau ne peut être supérieure à la distance par route !

    J'ai vérifié les coordonnées XY tout est correct.
    Voici le Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Option Compare Database
    Function Calcul_Distance(x_cible As Double, y_cible As Double, x_ref As Double, y_ref As Double) As Double
     
    Calcul_Distance = 6371 * ArcCosinus(Math.Cos(Radians(y_cible)) * Math.Cos(Radians(y_ref)) * Math.Cos(Radians(x_ref) - Radians(x_cible)) + Math.Sin(Radians(y_cible)) * Math.Sin(Radians(y_ref)))
     
    End Function
    '---------------------------------------
    Function PI() As Double
        PI = Atn(1) * 4
    End Function
    '-------------------------------------------
    Public Function ArcCosinus(Valeur As Double) As Double
     
        If Valeur = 1 Then
            ArcCosinus = 0
        Else
            ArcCosinus = Atn(-Valeur / Sqr(-Valeur * Valeur + 1)) + _
            2 * Atn(1)
        End If
    End Function
    '----------------------
    Function Radians(degres As Double) As Double
        'Conversion de degrés en radians
      Radians = degres / 180 * PI()
     
    End Function
    '------------------------------
     
    Sub test_calcul()
     
        Dim x1 As Double
        Dim y1 As Double
        Dim x2 As Double
        Dim y2 As Double
        Dim Resultat As Double
     
     
     
       'Nanterre (92)
       x1 = 48.8886993055556
       y1 = 2.21100338888889
         'Monterault Fault sur Yonne (77)
      x2 = 48.3804315
      y2 = 2.94655349999994
      '
        Resultat = Calcul_Distance(x1, y1, x2, y2)
        MsgBox "Distance Nanterre (92) -> Monterault Fault sur Yonne (77) = " & Round(Resultat, 2) & "km"
     
     
     'Champigny sur Marne (94)
     x1 = 48.8126479
     y1 = 2.52886820000003
     'Rosny sur Seine (78
     x2 = 49.000443
     y2 = 1.650059
        Resultat = Calcul_Distance(x1, y1, x2, y2)
        MsgBox "Champigny sur Marne (94)  -> Rosny sur Seine (78) = " & Round(Resultat, 2) & "km"
     
    End Sub
    Merci pour votre aide

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    Bonjour,

    A vue de nez je dirais que la formule est valable sur un plan carré et ne tient pas compte du fait que les longitudes rétrécissent avec la latitude
    Comme la terre est bombée c'est d'ailleurs une distance à tunnel de ver de terre

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 130
    Points : 55
    Points
    55
    Par défaut Rectificatif à apporter?
    Merci de votre remarque,
    mais vous avez un rectificatif à appliquer à la formule ?
    Merci pour votre réponse

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231

Discussions similaires

  1. calcul de distance entre 2 points
    Par c4cf6 dans le forum Android
    Réponses: 3
    Dernier message: 13/06/2010, 11h17
  2. calcul de distance entre deux points.
    Par jamsgoodon dans le forum Bioinformatique
    Réponses: 0
    Dernier message: 31/05/2010, 15h06
  3. [Google API v3] Calcul de distance entre plusieurs points
    Par akrogames dans le forum APIs Google
    Réponses: 1
    Dernier message: 08/04/2010, 17h35
  4. calculer la distance entre 2 point en c++
    Par chabeka dans le forum Débuter
    Réponses: 6
    Dernier message: 10/02/2009, 19h50
  5. Calcul de distance entre deux points en WGS84
    Par marieR dans le forum Langage
    Réponses: 5
    Dernier message: 03/08/2006, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo