Как проверить, находится ли данное значение долготы в любом диапазоне долготы? - PullRequest
1 голос
/ 17 февраля 2010

OK. Это может быть больше математический вопрос, но здесь идет.

У меня есть значение долготы, скажем, X. И я хочу знать, находится ли X между любыми двумя значениями долготы.

Например, если мой X равен 145, а диапазон равен [21, -179]. Диапазон определяется границами API Google Map, и на карте Google видно, что X попадает в этот диапазон.

Однако, как я могу на самом деле рассчитать это?

Ответы [ 2 ]

1 голос
/ 10 апреля 2010
// check if x is between min and max, inclusively
if ( x >= minLongitude && x <= maxLongitude ) 
   return true;
0 голосов
/ 19 августа 2010
/*
 * 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);
}
...