首页 >Java >java教程 >如何在 Java 中使用纬度和经度计算距离和边界框坐标?

如何在 Java 中使用纬度和经度计算距离和边界框坐标?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-02 05:42:29618浏览

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

使用纬度/经度点计算 Java 中的距离和边界框坐标

测量两个纬度和经度点之间的距离并创建边界给定点周围的方框是地图绘制和基于位置的应用程序中的一项常见任务。为了解决这一需求,Java 开发者可以利用半正弦公式来精确计算大圆距离。

计算距离

半正矢公式是一个数学方程,可以精确确定地球表面两点之间的距离。下面是该公式的 Java 实现:

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

创建边界框

计算出距离后,可以通过确定北边的点来创建边界框以及给定点以东指定的距离。下面的伪代码演示了这个过程:

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

以上是如何在 Java 中使用纬度和经度计算距离和边界框坐标?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn