Maison Problème commun [Formules mathématiques et dérivation] Calculez la distance entre deux points au sol en fonction de la longitude et de la latitude

[Formules mathématiques et dérivation] Calculez la distance entre deux points au sol en fonction de la longitude et de la latitude

Oct 22, 2020 am 11:38 AM
经纬度

1. Hypothèse : La terre est une sphère parfaite. Les coordonnées de longitude et de latitude de deux points A et B au sol sont respectivement (Aj, Aw) et (Bj, Bw). Le rayon moyen de la terre R est de 6371 km.

2. Établir un système de coordonnées rectangulaires tridimensionnel :

Le centre de la terre est l'origine O, l'axe de la terre est l'axe Z, le pôle nord la direction est la direction positive de l'axe Z, et le plan équatorial est X Le plan où se trouvent l'axe et l'axe Y, sur ce plan, la direction du centre de la terre à la longitude zéro degré est la direction positive direction de l'axe X, et la direction positive de l'axe Y est déterminée selon la règle de droite.

Supposons que les coordonnées tridimensionnelles du point A soient (Ax, Ay, Az) et que les coordonnées tridimensionnelles du point B soient (Bx, By, Bz)

3. Idée :

Le plan où les trois points A, B et O coupent la terre forme un cercle de rayon R. Trouver la distance au sol entre AB, c'est trouver la longueur du arc AB sur le cercle. On peut trouver par la formule que la longueur de l'arc est égale au rayon multiplié par l'angle au centre.

Puisque R est déterminé, la longueur de l'arc AB peut être obtenue tant que l'angle θ entre OA et OB est obtenu. Arc AB=R*θ.
L'angle θ peut être obtenu par la formule vectorielle :

Vecteur OA*vecteur OB=|OA||OB|cosθ.
puis

cosθ=向量OA*向量OB/|OA||OB|
     =(Ax*Bx+Ay*By+Az*Bz)/R*R
Copier après la connexion

4. Utilisez les coordonnées de latitude et de longitude pour exprimer les coordonnées rectangulaires tridimensionnelles :

Ax=R*cosAw*cosAj
Ay=R*cosAw*sinAj
Az=R*sinAw
Bx=R*cosBw*cosBj
By=R*cosBw*sinBj
Bz=R*sinBw
Copier après la connexion

peut être remplacé par

cosθ=cosAw*cosAj*cosBw*cosBj+cosAw*sinAj*cosBw*sinBj+sinAw*sinBw
     =cosAw*cosBw(cosAj*cosBj+sinAj*sinBj)+sinAw*sinBw
     =cosAw*cosBw*cos(Aj-Bj)+sinAw*sinBw
θ=arccos[cosAw*cosBw*cos(Aj-Bj)+sinAw*sinBw]
Copier après la connexion

5. En résumé, elle peut être calculée en fonction de la longitude et de la latitude. La formule de la distance entre deux points au sol :

弧AB=R*arccos[cosAw*cosBw*cos(Aj-Bj)+sinAw*sinBw]
Copier après la connexion

Explication :

Tout le monde a fait la dérivation de formules similaires avant. Vous pouvez oublier certaines choses après un long moment, alors je l'ai mémorisé. Enregistré pour référence.

En raison des transformations multiterminales des fonctions trigonométriques, cette formule peut être exprimée sous plus d'une forme. Tant que les hypothèses de base sont les mêmes, elles doivent être mathématiquement équivalentes et peuvent être déduites les unes des autres. .
Lorsque vous l'utilisez dans le code du programme réel, vous devez faire attention au problème de l'unité. Par exemple, l'unité de longitude et de latitude obtenue à partir du localisateur est le degré, et la méthode de calcul trigonométrique est susceptible d'utiliser le radian. L'exemple est de savoir si l'unité de longueur est km ou m.

Recommandé : "Vidéo de programmation"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)