Maison  >  Article  >  Java  >  Comment calculer la distance et les coordonnées du cadre de délimitation en utilisant la latitude et la longitude en Java ?

Comment calculer la distance et les coordonnées du cadre de délimitation en utilisant la latitude et la longitude en Java ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-02 05:42:29528parcourir

How to Calculate Distance and Bounding Box Coordinates Using Latitude and Longitude in Java?

Calcul de la distance et des coordonnées du cadre de délimitation en Java à l'aide de points de latitude/longitude

Mesurer la distance entre deux points de latitude et de longitude et créer une délimitation La création d'un cadre autour d'un point donné est une tâche courante dans les applications de cartographie et de localisation. Pour répondre à ce besoin, les développeurs Java peuvent exploiter la formule Haversine pour calculer avec précision les distances orthodromiques.

Calcul de la distance

La formule Haversine, une équation mathématique, peut déterminer avec précision la distance entre deux points de la surface de la Terre. Voici une implémentation Java de la formule :

<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>

Création d'un cadre de délimitation

Une fois la distance calculée, le cadre de délimitation peut être créé en déterminant les points qui sont au nord et à l'est du point donné par la distance spécifiée. Le pseudocode suivant illustre ce processus :

// Assuming distance is in miles

// Calculate North and East edges
northEdge = lat + (distance / 69);  // Divide by 69 to convert to degrees
eastEdge = lng + (distance / 53);   // Divide by 53 to convert to degrees

// Create bounding box coordinates
boundingBox = [lat, lng, northEdge, eastEdge]

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:
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