Calcul de la distance et des cadres de délimitation à l'aide de points de latitude-longitude en Java
Cette question répond à la nécessité de mesurer la distance entre deux points et de créer une boîte englobante autour du premier point, en considérant une distance donnée dans les directions nord et est. Pour y parvenir, nous devons utiliser la formule de la distance orthodromique, également connue sous le nom de formule de Haversine. Cette formule calcule avec précision les distances sur une Terre sphérique.
Vous trouverez ci-dessous une implémentation Java de la formule Haversine :
<code class="java">public static double distFrom(double lat1, double lng1, double lat2, double lng2) { double earthRadius = 3958.75; // miles (or 6371.0 kilometers) double dLat = Math.toRadians(lat2 - lat1); double dLng = Math.toRadians(lng2 - lng1); double sindLat = Math.sin(dLat / 2); double sindLng = Math.sin(dLng / 2); double a = Math.pow(sindLat, 2) + Math.pow(sindLng, 2) * Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)); double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); double dist = earthRadius * c; return dist; }</code>
Une fois la distance entre les deux points calculée, nous pouvons déterminer les coordonnées du coin supérieur droit du cadre de délimitation en ajoutant la distance donnée à la latitude et à la longitude du premier point.
Exemple :
Étant donné le point de départ (37.7749, -122.4194) et une distance de 0,5 miles, le coin supérieur droit du cadre de délimitation serait calculé comme suit :
<code class="java">double lat = 37.7749 + 0.009045; // Calculated using the Haversine formula double lng = -122.4194 + 0.012990; // Calculated using the Haversine formula</code>
Le cadre de délimitation résultant serait défini par les coordonnées : (37.7749, -122.4194) , -122.4194) et (lat, lng).
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!