Calculating Distance and Generating Bounding Boxes from Latitude Longitude Points in Java
Measuring distances between latitude and longitude coordinates, known as great circle distance, is essential for geospatial applications. Additionally, creating bounding boxes around points using distances enables visualization and analysis.
Great Circle Distance Calculation
The Haversine formula, a widely used method for calculating great circle distances, can be implemented in Java as follows:
<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>
Generating Bounding Boxes
Once the distance is calculated, determining the points that represent the bounding box requires:
Calculating North Point:
Calculating East Point:
By combining the original point with the north and east points, a bounding box can be generated.
The above is the detailed content of How to Calculate Great Circle Distance and Generate Bounding Boxes from Latitude and Longitude Points in Java?. For more information, please follow other related articles on the PHP Chinese website!