如何检查给定的经度值是否在任何经度范围内?

时间:2010-02-17 10:16:57

标签: api google-maps latitude-longitude

行。这可能更像是一个数学问题,但现在就是这样。

我有一个经度值,让我们说X.我想知道X是否落在任何两个经度值之间。

例如,如果我的X是145,范围是[21,-179]。范围由Google Map API界限给出,我可以在谷歌地图上看到X确实属于该范围。

但是,我该如何计算呢?

2 个答案:

答案 0 :(得分:1)

// check if x is between min and max, inclusively
if ( x >= minLongitude && x <= maxLongitude ) 
   return true;

答案 1 :(得分:0)

/*
 * Return true if and only if the longitude value lng lies in the range [min, max].
 *
 * All input values should be in the range [-180, +180].
 * The test is conducted clockwise.
 */
private boolean isLongitudeInRange(double lng, double min, double max) {

    assert(lng >= -180.0 && lng <= 180.0);
    assert(min >= -180.0 && min <= 180.0);
    assert(max >= -180.0 && max <= 180.0);

    if (lng < min) {
        lng += 360.0;
    }

    if (max < min) {
        max += 360.0;
    }

    return (lng >= min) && (lng <= max);
}