Maison > Java > javaDidacticiel > le corps du texte

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
Libérer: 2024-11-02 05:42:29
original
530 Les gens l'ont consulté

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>
Copier après la connexion

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]
Copier après la connexion

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!