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

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-02 05:42:29519browse

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

Calculating Distance and Bounding Box Coordinates in Java Using Lat/Long Points

Measuring the distance between two latitude and longitude points and creating a bounding box around a given point is a common task in mapping and location-based applications. To address this need, Java developers can leverage the Haversine formula to accurately calculate great circle distances.

Calculating Distance

The Haversine formula, a mathematical equation, can precisely determine the distance between two points on the Earth's surface. Here's a Java implementation of the formula:

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

Creating Bounding Box

With the distance calculated, the bounding box can be created by determining the points that are north and east of the given point by the specified distance. The following pseudocode demonstrates this process:

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

The above is the detailed content of How to Calculate Distance and Bounding Box Coordinates Using Latitude and Longitude in Java?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn