在Java中,根据给定的纬度、经度和半径值,查找最小和最大纬度和经度。

3

我可以根据经纬度(即minLatitude、minLongitude、maxLatitude和maxLongitude)计算距离,但我需要示例Java代码来根据输入的纬度、经度和半径值查找minLatitude、minLongitude、maxLatitude和maxLongitude。

以下是查找lat1、long1、lat2和lang2值之间距离的代码:

public static double distance(double lat1, double lon1, double lat2, double lon2) {
        double dLat = Math.toRadians(lat2 - lat1);
        double dLon = Math.toRadians(lon2 - lon1);
        lat1 = Math.toRadians(lat1);
        lat2 = Math.toRadians(lat2);

        double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.sin(dLon / 2) * Math.sin(dLon / 2) * Math.cos(lat1) * Math.cos(lat2);
    double c = 2 * Math.asin(Math.sqrt(a));
    return R * c;
}

虽然是另一种编程语言,但我认为这可能有帮助,因为它实现了相同的功能,而且代码比较简单易懂。 - Raul Rene
1个回答

0

尝试类似这样的代码:

/** returns minLatitude, maxLatitude, minLongitude, maxLongitude */
public double[] calculateMinMaxValues(double latitude , double longitude, double radius){
    double[] res = new double[4];
    res[0] /*minLatitude*/ = latitude - (radius*2)/60.0;
    res[1] /*maxLatitude*/ = latitude + (radius*2)/60.0;

    res[2] /*minLongitude*/ = (longitude*2)/60.0 *(Math.cos(res[0]));
    res[3] /*maxLongitude*/ = (longitude*2)/60.0 *(Math.cos(res[1]));
    return res;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接