


Présentation des calculs de distance basés sur la latitude et la longitude
Calculer la distance entre deux points de la surface de la Terre en utilisant leurs coordonnées de latitude et de longitude est un tâche fondamentale dans diverses applications. Ci-dessous, nous explorerons les subtilités du calcul de cette distance à l'aide d'un extrait de code Java et nous plongerons dans une implémentation améliorée qui prend en compte les différences d'altitude.
Calcul de la distance à l'aide d'un extrait de code Java
Le code fourni par Dommer utilise une formule simplifiée pour calculer la distance entre deux points à la surface de la Terre :
<code class="java">double temp = Math.cos(Math.toRadians(latA)) * Math.cos(Math.toRadians(latB)) * Math.cos(Math.toRadians((latB) - (latA))) + Math.sin(Math.toRadians(latA)) * Math.sin(Math.toRadians(latB)); return temp * RADIUS * Math.PI / 180;</code>
Cette formule suppose une Terre sphérique et donne des résultats raisonnables pour de petites distances. Cependant, il ne prend pas en compte les différences d'altitude, ce qui peut entraîner des inexactitudes sur des distances importantes.
Présentation de la formule Haversine pour le calcul de distance en fonction de l'altitude
Pour remédier aux limitations De la formule utilisée par Dommer, nous nous tournons vers la formule de Haversine, qui intègre un modèle plus précis pour représenter la forme de la Terre. Cette formule prend explicitement en compte la distance et la différence de hauteur entre les deux points :
<code class="java">public static double distance(double lat1, double lat2, double lon1, double lon2, double el1, double el2) { final int R = 6371; // Radius of the earth double latDistance = Math.toRadians(lat2 - lat1); double lonDistance = Math.toRadians(lon2 - lon1); double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2) + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2); double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); double distance = R * c * 1000; // convert to meters double height = el1 - el2; distance = Math.pow(distance, 2) + Math.pow(height, 2); return Math.sqrt(distance); }</code>
Cette formule fournit une représentation plus précise de la distance, ce qui la rend utile pour les applications nécessitant des calculs géographiques précis.
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Version Mac de WebStorm
Outils de développement JavaScript utiles

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.